Beispiel #1
0
        /// <inheritdoc cref="ISerializationElement.Serialize" />
        public void Serialize(HessianOutputWriter writer, object graph, HessianSerializationContext context)
        {
            if (null == graph)
            {
                writer.WriteNull();
                return;
            }

            var index = context.Instances.IndexOf(graph);

            if (index > -1)
            {
                writer.WriteInstanceReference(index);
                return;
            }

            context.Instances.Add(graph);

            index = context.Classes.IndexOf(ObjectType);

            if (0 > index)
            {
            }

            WriteArray(writer, (Array)graph, context);
        }
        /// <inheritdoc cref="ISerializationElement.Serialize" />
        public void Serialize(HessianOutputWriter writer, object graph, HessianSerializationContext context)
        {
            if (null == graph)
            {
                writer.WriteNull();
                return;
            }

            var index = context.Instances.IndexOf(graph);

            if (index > -1)
            {
                writer.WriteInstanceReference(index);
                return;
            }

            context.Instances.Add(graph);

            index = context.Classes.IndexOf(ObjectType);

            if (0 > index)
            {
            }

            using (writer.BeginArray(ObjectType.Name))
            {
                foreach (var item in (IEnumerable)graph)
                {
                    Element.Serialize(writer, item, context);
                }
            }
        }
Beispiel #3
0
        /// <inheritdoc cref="ISerializationElement.Serialize" />
        public void Serialize(HessianOutputWriter writer, object graph, HessianSerializationContext context)
        {
            var index = context.Instances.IndexOf(graph);

            if (index > -1)
            {
                writer.WriteInstanceReference(index);
                return;
            }

            context.Instances.Add(graph);

            index = context.Classes.IndexOf(ObjectType);

            if (0 > index)
            {
                writer.BeginClassDefinition();
                writer.WriteString(ClassName);
                writer.WriteInt32(ObjectProperties.Count);

                foreach (var property in ObjectProperties)
                {
                    writer.WriteString(property.PropertyName);
                }

                writer.EndClassDefinition();

                index = context.Classes.Count;

                context.Classes.Add(ObjectType);
            }

            writer.WriteObjectReference(index);

            foreach (var item in ObjectProperties)
            {
                var value = item.Property.GetPropertyValue(graph);
                item.Serialize(writer, value, context);
            }
        }