/// <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) { } var collection = (ICollection)graph; using (writer.BeginFixedArray(ObjectType.Name, collection.Count)) { foreach (var item in collection) { Element.Serialize(writer, item, context); } } }
private void WriteArray(HessianOutputWriter writer, Array array, HessianSerializationContext context) { using (writer.BeginFixedArray(ObjectType.Name, array.Length)) { var index = array.GetLowerBound(0); var end = array.GetUpperBound(0); for (; index <= end; index++) { var item = array.GetValue(index); Element.Serialize(writer, item, context); } } }