Пример #1
0
            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);
            }
        }
Пример #3
0
            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);
            }
Пример #4
0
            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);
            }
Пример #5
0
 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);
 }