예제 #1
0
        public void XmlSerializerCollectionSerializeTest()
        {
            var data = new DataWithCollection();

            data.Items.Add(new Item()
            {
                Text = "Item0",
            });
            data.Items.Add(new Item()
            {
                Text = "Item1",
            });
            data.Items.Add(null);
            data.Items.Add(new Item()
            {
                Text = "Item2",
            });

            var serializer = new XmlSerializer(typeof(DataWithCollection));

            using var stream = new MemoryStream();

            serializer.Serialize(stream, data);
            var xml = Encoding.UTF8.GetString(stream.GetBuffer());
        }
예제 #2
0
        public void DataContractSerializerCollectionSerializeTest()
        {
            var data = new DataWithCollection();

            data.Items.Add(new Item()
            {
                Text = "Item0",
            });
            data.Items.Add(new Item()
            {
                Text = "Item1",
            });
            data.Items.Add(null);
            data.Items.Add(new Derived()
            {
                Text = "Item2", DerivedText = "Derived"
            });
            data.Items.Add(data.Items[0]);

            var serializer = new DataContractSerializer(typeof(DataWithCollection));

            using var stream = new MemoryStream();
            using var writer = XmlWriter.Create(stream, DefaultXmlWriterSettings);

            serializer.WriteObject(writer, data);
            writer.Flush();
            var xml = Encoding.UTF8.GetString(stream.GetBuffer());

            stream.Position = 0;

            data = (DataWithCollection)serializer.ReadObject(stream);
            Assert.IsFalse(ReferenceEquals(data.Items[4], data.Items[0]));
        }