예전 방식대로 Stream에 값 형식의 정보를 저장하고, 조회할 때 사용하는 Class
Inheritance: System.IO.MemoryStream
示例#1
0
        public void ReferenceTypeSerializeBinaryTest477378791() {
            using(var ms = new ValueStream()) {
                var objs = new List<object>();

                objs.Add(new Uri("http://localhost"));
                objs.Add(new Rectangle(0, 0, 100, 100));

                // BinaryTree<int> btree = new BinaryTree<int>();
                // btree.AddRange(1, 2, 3, 4, 5, 6);
                // objs.Add(btree);

                // SerializerTool.BinarySerialize(objs, ms);
                SerializerTool.Serialize(objs, ms, BinaryFormatter);

                ms.Position = 0;
                Console.WriteLine("Original Objects  = " + ArrayTool.AsString(objs.ToArray()));
                Console.WriteLine("Binary Serialized =\r\n" + ms.GetHexDumpString());

                ms.Position = 0;
                // List<object> objs2 = (List<object>)SerializerTool.BinaryDeserialize(ms);
                var objs2 = SerializerTool.Deserialize<List<object>>(ms, BinaryFormatter);

                Console.WriteLine("Deserialized      = " + ArrayTool.AsString(objs2.ToArray()));

                for(int i = 0; i < objs.Count; i++) {
                    Assert.AreEqual(objs[i], objs2[i]);
                }
            }
        }
示例#2
0
        public void Write_Read_ValueStream() {

            using(var ms = new ValueStream())
            using(var ms2 = new ValueStream()) {
                var s = @"동해물과 백두산이";
                var b = s.ToBytes();
                ms.Write(s);
                ms.Write(true);
                ms.Write(1234);
                ms.Write('x');
                ms.Write(1245.567F);
                ms.Write(999.99);
                ms.Write(4444L);
                ms.Write((short)127);
                ms.Write(s.ToBytes());

                ms.Position = 0;

                Assert.AreEqual(ms.ReadString(), s);
                Assert.AreEqual(ms.ReadBoolean(), true);
                Assert.AreEqual(ms.ReadInt32(), 1234);
                Assert.AreEqual(ms.ReadChar(), 'x');
                Assert.AreEqual(ms.ReadFloat(), 1245.567F);
                Assert.AreEqual(ms.ReadDouble(), 999.99);
                Assert.AreEqual(ms.ReadInt64(), 4444L);
                Assert.AreEqual(ms.ReadInt16(), 127);

                Assert.AreEqual(ms.ReadBytes(b.Length).ToText(), s);

                ms.Position = 0;

                // ms 의 내용을 m2에 쓴다.
                ms2.Write(ms);
                ms2.Position = 0;

                // m2 stream을 모두 복사해서 새로운 객체를 만든다.
                var ms3 = (MemoryStream)ms2.ReadStream();
                ms3.Position = 0;

                Assert.AreEqual(StreamTool.ReadString(ms3), s);
                Assert.AreEqual(StreamTool.ReadBoolean(ms3), true);
                Assert.AreEqual(StreamTool.ReadInt32(ms3), 1234);
                Assert.AreEqual(StreamTool.ReadChar(ms3), 'x');
                Assert.AreEqual(StreamTool.ReadFloat(ms3), 1245.567F);
                Assert.AreEqual(StreamTool.ReadDouble(ms3), 999.99);
                Assert.AreEqual(StreamTool.ReadInt64(ms3), 4444L);
                Assert.AreEqual(StreamTool.ReadInt16(ms3), 127);

                Assert.AreEqual(StreamTool.ReadBytes(ms3, b.Length).ToText(), s);
            }
        }
示例#3
0
        public void Write_Read_ValueStream()
        {
            using (var ms = new ValueStream())
                using (var ms2 = new ValueStream()) {
                    var s = @"동해물과 백두산이";
                    var b = s.ToBytes();
                    ms.Write(s);
                    ms.Write(true);
                    ms.Write(1234);
                    ms.Write('x');
                    ms.Write(1245.567F);
                    ms.Write(999.99);
                    ms.Write(4444L);
                    ms.Write((short)127);
                    ms.Write(s.ToBytes());

                    ms.Position = 0;

                    Assert.AreEqual(ms.ReadString(), s);
                    Assert.AreEqual(ms.ReadBoolean(), true);
                    Assert.AreEqual(ms.ReadInt32(), 1234);
                    Assert.AreEqual(ms.ReadChar(), 'x');
                    Assert.AreEqual(ms.ReadFloat(), 1245.567F);
                    Assert.AreEqual(ms.ReadDouble(), 999.99);
                    Assert.AreEqual(ms.ReadInt64(), 4444L);
                    Assert.AreEqual(ms.ReadInt16(), 127);

                    Assert.AreEqual(ms.ReadBytes(b.Length).ToText(), s);

                    ms.Position = 0;

                    // ms 의 내용을 m2에 쓴다.
                    ms2.Write(ms);
                    ms2.Position = 0;

                    // m2 stream을 모두 복사해서 새로운 객체를 만든다.
                    var ms3 = (MemoryStream)ms2.ReadStream();
                    ms3.Position = 0;

                    Assert.AreEqual(StreamTool.ReadString(ms3), s);
                    Assert.AreEqual(StreamTool.ReadBoolean(ms3), true);
                    Assert.AreEqual(StreamTool.ReadInt32(ms3), 1234);
                    Assert.AreEqual(StreamTool.ReadChar(ms3), 'x');
                    Assert.AreEqual(StreamTool.ReadFloat(ms3), 1245.567F);
                    Assert.AreEqual(StreamTool.ReadDouble(ms3), 999.99);
                    Assert.AreEqual(StreamTool.ReadInt64(ms3), 4444L);
                    Assert.AreEqual(StreamTool.ReadInt16(ms3), 127);

                    Assert.AreEqual(StreamTool.ReadBytes(ms3, b.Length).ToText(), s);
                }
        }
示例#4
0
        public void ValueTypeSerializeBinaryTest1776368509() {
            using(var ms = new ValueStream()) {
                var strs = new[] { "가", "나", "다", "라" };

                SerializerTool.Serialize(strs, ms, BinaryFormatter);
                // SerializerTool.BinarySerialize(strs, ms);

                ms.Position = 0;
                Console.WriteLine("Original Strings  = " + ArrayTool.AsString(strs));
                Console.WriteLine("Binary Serialized =\r\n" + ms.GetHexDumpString());

                ms.Position = 0;
                // string[] strs2 = (string[])SerializerTool.BinaryDeserialize(ms);
                var strs2 = SerializerTool.Deserialize<string[]>(ms, BinaryFormatter);
                log.Debug("Deserialized      = " + ArrayTool.AsString(strs2));

                Assert.AreEqual(strs, strs2);
            }
        }