3 using System.Collections.Generic;
5 using System.Runtime.Serialization;
6 using System.ServiceModel;
7 using System.ServiceModel.Channels;
8 using System.ServiceModel.Description;
12 using System.ServiceModel.Dispatcher;
14 using NUnit.Framework;
16 namespace MonoTests.System.Runtime.Serialization
18 public class DataItemTest242
20 public string Name { get; set; }
23 public class DataTest242
25 public DataItemTest242[] DataArray { get; set; }
26 public IList<DataItemTest242> DataIList { get; set; }
27 public List<DataItemTest242> DataList { get; set; }
28 public ICollection<DataItemTest242> DataICollection { get; set; }
29 public IEnumerable<DataItemTest242> DataIEnumerable { get; set; }
33 public class Bug242Test
36 public void TestMixListArraySerialize()
38 var dataItems = new[] { new DataItemTest242 () { Name = "aaaaa" },
39 new DataItemTest242 () { Name = "bbbbb" } };
41 var data = new DataTest242 ()
43 DataArray = dataItems,
44 DataIList = dataItems.ToList (),
45 DataList = dataItems.ToList (),
46 DataICollection = dataItems.ToList (),
47 DataIEnumerable = dataItems.ToList ()
53 using (var stream = new MemoryStream ())
55 var serializer = new DataContractSerializer (typeof (DataTest242));
56 serializer.WriteObject (stream, data);
57 xml = Encoding.UTF8.GetString (stream.ToArray ());
61 DataTest242 clonedData;
62 using (var reader = XmlDictionaryReader.CreateTextReader (Encoding.UTF8.GetBytes (xml), new XmlDictionaryReaderQuotas ()))
64 var serializer = new DataContractSerializer (typeof (DataTest242));
65 clonedData = (DataTest242)serializer.ReadObject (reader);
68 // ensure resulting object is populated
69 Assert.AreEqual (clonedData.DataArray.Length , data.DataArray.Length,"#1 clonedData.DataArray.Length" );
70 Assert.AreEqual (clonedData.DataList.Count, data.DataList.Count,"#2 clonedData.DataList.Count" );
71 Assert.AreEqual (clonedData.DataIList.Count, data.DataIList.Count,"#3 clonedData.DataIList.Count" );
72 Assert.AreEqual (clonedData.DataICollection.Count, data.DataICollection.Count,"#4 clonedData.DataICollection.Count" );
73 Assert.AreEqual (clonedData.DataIEnumerable.Count (), data.DataIEnumerable.Count (),"#5 clonedData.DataIEnumerable.Count()" );