/// <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); } } }
/// <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); } }