Beispiel #1
0
        public override object Read(BinSerializer bs, object instance)
        {
            var list        = (IList)instance;
            var elementType = instance.GetType().GetGenericArguments()[0];
            //注意:需要读取元素个数
            var count = VariantHelper.ReadInt32(bs.Stream);

            bs.ReadCollection(elementType, count, (index, value) => list.Add(value));
            return(list);
        }
Beispiel #2
0
        public override object Read(BinSerializer bs, object instance)
        {
            int         count = VariantHelper.ReadInt32(bs.Stream);
            IDictionary dic   = (IDictionary)instance;

            for (int i = 0; i < count; i++)
            {
                dic.Add(bs.Deserialize(), bs.Deserialize());
            }
            return(instance);
        }
Beispiel #3
0
        public string Read(BinSerializer bs)
        {
            int len = VariantHelper.ReadInt32(bs.Stream);

            if (len == -1)
            {
                return(null);
            }
            if (len == 0)
            {
                return(string.Empty);
            }
            return(StringHelper.ReadFrom(len, () => (byte)bs.Stream.ReadByte()));
        }
Beispiel #4
0
        public override object Read(BinSerializer bs, object instance)
        {
            int value = VariantHelper.ReadInt32(bs.Stream);

            return(Enum.ToObject(this.TargetType, value));
        }
 public int Read(BinSerializer bs)
 {
     return(VariantHelper.ReadInt32(bs.Stream));
 }
 public override object Read(BinSerializer bs, object instance)
 {
     return(VariantHelper.ReadInt32(bs.Stream));
 }