示例#1
0
#pragma warning disable RCS1163 // Unused parameter.
        public static void Test(object obj, ProtoSerializer serializer, string message, byte[] expected)
#pragma warning restore RCS1163 // Unused parameter.
        {
            byte[] data;
            using (MemoryStream ms = new MemoryStream())
            {
                long reported;
                using (ProtoWriter writer = ProtoWriter.Create(out var state, ms, RuntimeTypeModel.Default, null))
                {
                    serializer(writer, ref state, obj);
                    writer.Close(ref state);
                    reported = ProtoWriter.GetLongPosition(writer, ref state);
                }
                data = ms.ToArray();
                Assert.Equal(reported, data.Length);    //, message + ":reported/actual");
            }
            Assert.Equal(expected.Length, data.Length); //, message + ":Length");
            for (int i = 0; i < data.Length; i++)
            {
                Assert.Equal(expected[i], data[i]); //, message + ":" + i);
            }
        }