public override int WriteMembers(ByteBuffer buffer, object container) { int num = 0; if (base.BaseType != null) { base.BaseType.WriteMembers(buffer, container); } SerialiableMember[] members = this.Members; for (int i = 0; i < (int)members.Length; i++) { SerialiableMember serialiableMember = members[i]; object obj = serialiableMember.Accessor.Get(container); if (obj != null) { AmqpCodec.EncodeSymbol(serialiableMember.Name, buffer); SerializableType type = serialiableMember.Type; if (obj.GetType() != type.type) { type = this.serializer.GetType(obj.GetType()); } type.WriteObject(buffer, obj); num = num + 2; } } return(num); }
internal void WriteObjectInternal(Stream stream, object graph) { if (graph == null) { stream.WriteByte(64); return; } SerializableType type = this.GetType(graph.GetType()); using (ByteBuffer byteBuffer = new ByteBuffer(1024, true)) { type.WriteObject(byteBuffer, graph); stream.Write(byteBuffer.Buffer, byteBuffer.Offset, byteBuffer.Length); } }
public override int WriteMembers(ByteBuffer buffer, object container) { int num = 0; foreach (object obj in (IEnumerable)container) { object obj1 = this.keyAccessor.Get(obj); object obj2 = this.valueAccessor.Get(obj); if (obj2 == null) { continue; } this.keyType.WriteObject(buffer, obj1); SerializableType type = this.valueType; if (obj2.GetType() != type.type) { type = this.serializer.GetType(obj2.GetType()); } type.WriteObject(buffer, obj2); num = num + 2; } return(num); }
public override int WriteMembers(ByteBuffer buffer, object container) { int num = 0; foreach (object obj in (IEnumerable)container) { if (obj != null) { SerializableType type = this.itemType; if (obj.GetType() != type.type) { type = this.serializer.GetType(obj.GetType()); } type.WriteObject(buffer, obj); } else { AmqpEncoding.EncodeNull(buffer); } num++; } return(num); }
public override int WriteMembers(ByteBuffer buffer, object container) { SerialiableMember[] members = this.Members; for (int i = 0; i < (int)members.Length; i++) { SerialiableMember serialiableMember = members[i]; object obj = serialiableMember.Accessor.Get(container); if (obj != null) { SerializableType type = serialiableMember.Type; if (obj.GetType() != type.type) { type = this.serializer.GetType(obj.GetType()); } type.WriteObject(buffer, obj); } else { AmqpEncoding.EncodeNull(buffer); } } return((int)this.Members.Length); }