Example #1
0
        internal static bool TestCase()
        {
            MemberMap value = new MemberMap {
                Value1 = 1, Value2 = 2, Value3 = 3
            };

            //成员位图初始化代价比较大,应该根据需求重用该对象
            AutoCSer.Metadata.MemberMap <MemberMap> serializeMemberMap = AutoCSer.Metadata.MemberMap <MemberMap> .NewEmpty();

#if DOTNET2
            serializeMemberMap.SetMember("Value1");                //添加成员 Value1
            serializeMemberMap.SetMember("Value2");                //添加成员 Value2
#else
            serializeMemberMap.SetMember(member => member.Value1); //添加成员 Value1
            serializeMemberMap.SetMember(member => member.Value2); //添加成员 Value2
#endif
            AutoCSer.BinarySerialize.SerializeConfig serializeMemberMapConfig = new AutoCSer.BinarySerialize.SerializeConfig {
                MemberMap = serializeMemberMap
            };

            byte[]    data     = AutoCSer.BinarySerializer.Serialize(value, serializeMemberMapConfig);
            MemberMap newValue = AutoCSer.BinaryDeSerializer.DeSerialize <MemberMap>(data);

            return(newValue != null && newValue.Value1 == 1 && newValue.Value2 == 2 && newValue.Value3 == 0);
        }
 internal AutoCSer.BinarySerialize.SerializeWarning SerializeNotNull <valueType>(ref valueType value, byte *data, int length, AutoCSer.BinarySerialize.SerializeConfig config)
 {
     Stream.Reset(data, length);
     Config = config;
     serialize(ref value);
     return(Warning);
 }