コード例 #1
0
        /// <summary>
        /// 序列化接口测试
        /// </summary>
        /// <returns></returns>
        //[fastCSharp.setup.testCase]
        internal static bool ISerialize()
        {
            serialize value = pub.ClearMember(new serialize()), value1 = new serialize();

            byte[] data1 = value1.Serialize();
            log.Default.Add(data1.joinString(','), false, false);

            serialize value2 = (serialize)value.MemberwiseClone();

            value2.DeSerialize(data1);
            if (!pub.Equals(value1, value2))
            {
                throw new Exception("DeSerialize");
            }

            byte[] data2;
            using (MemoryStream stream = new MemoryStream())
            {
                value1.Serialize(stream);
                if (stream.Length != stream.Position)
                {
                    stream.SetLength(stream.Position);
                }
                data2 = stream.ToArray();
            }
            if (!data1.equal(data2))
            {
                throw new Exception(@"dataSerializer <> streamSerializer
            " + data1.joinString(',') + @"
            " + data2.joinString(','));
            }


            data2 = fastCSharp.setup.cSharp.serialize.dataSerialize.Get(value1);
            if (!data1.equal(data2))
            {
                throw new Exception(@"reflection dataSerialize
            " + data1.joinString(',') + @"
            " + data2.joinString(','));
            }

            data2 = fastCSharp.setup.cSharp.serialize.streamSerialize.Get(value1);
            if (!data1.equal(data2))
            {
                throw new Exception(@"reflection streamSerialize
            " + data1.joinString(',') + @"
            " + data2.joinString(','));
            }

            value2 = fastCSharp.setup.cSharp.serialize.deSerialize.Get <serialize>(data1);
            if (!pub.Equals(value1, value2))
            {
                throw new Exception("reflection deSerialize");
            }

            return(true);
        }