static void Main(string[] args) { const string XML = @"<?xml version=""1.0"" encoding=""UTF-8""?> <DietPlan> <Fruit>fig</Fruit> <Fruit>Apple</Fruit> <Fruit>Peach</Fruit> </DietPlan>"; var ms = new MemoryStream(Encoding.UTF8.GetBytes(XML)); TestData testdata1 = DeserializeFromStream <TestData>(ms); TestDataForSerialization testdata2 = DeserializeFromStream <TestDataForSerialization>(ms); MemoryStream msserialized1 = SerializeToStream(testdata1); TestDataForSerialization testdata_toserialize = Convert(testdata1); MemoryStream msserialized2 = SerializeToStream(testdata_toserialize); string xml1 = Encoding.UTF8.GetString(msserialized1.ToArray()); string xml2 = Encoding.UTF8.GetString(msserialized2.ToArray()); TestData testdata_deserialized1 = DeserializeFromStream <TestData>(msserialized1); TestData testdata_deserialized2 = DeserializeFromStream <TestData>(msserialized2); TestData testdata_deserialized3 = DeserializeFromString <TestData>(xml1); TestData testdata_deserialized4 = DeserializeFromString <TestData>(xml2); }
static void Main(string[] args) { const string XML = @"<?xml version=""1.0"" encoding=""UTF-8""?> <DietPlan> <Fruit>fig</Fruit> <Fruit>Apple</Fruit> <Fruit>Peach</Fruit> </DietPlan>"; var ms = new MemoryStream(Encoding.UTF8.GetBytes(XML)); TestData testdata1 = DeserializeFromStream <TestData>(ms); TestDataForSerialization testdata2 = DeserializeFromStream <TestDataForSerialization>(ms); TestData testdata3 = new TestData() { Fruits = new List <XmlElement> { GetFruitElement("fig"), GetFruitElement("Apple"), GetFruitElement("Peach") } }; TestDataForSerialization testdata4 = new TestDataForSerialization() { Fruits = new List <string> { "fig", "Apple", "Peach" } }; TestDataForSerialization testdata5 = Convert(testdata1); MemoryStream msserialized1 = SerializeToStream <TestData>(testdata1); MemoryStream msserialized2 = SerializeToStream <TestDataForSerialization>(testdata2); MemoryStream msserialized3 = SerializeToStream <TestData>(testdata3); MemoryStream msserialized4 = SerializeToStream <TestDataForSerialization>(testdata4); MemoryStream msserialized5 = SerializeToStream(testdata5); string xml1 = Encoding.UTF8.GetString(msserialized1.ToArray()); string xml2 = Encoding.UTF8.GetString(msserialized2.ToArray()); string xml3 = Encoding.UTF8.GetString(msserialized3.ToArray()); string xml4 = Encoding.UTF8.GetString(msserialized4.ToArray()); string xml5 = Encoding.UTF8.GetString(msserialized5.ToArray()); TestData testdata_deserialized1 = DeserializeFromStream <TestData>(msserialized1); TestData testdata_deserialized2 = DeserializeFromStream <TestData>(msserialized2); TestData testdata_deserialized3 = DeserializeFromStream <TestData>(msserialized3); TestData testdata_deserialized4 = DeserializeFromStream <TestData>(msserialized4); TestData testdata_deserialized5 = DeserializeFromStream <TestData>(msserialized5); TestData testdata_deserialized6 = DeserializeFromString <TestData>(xml1); TestData testdata_deserialized7 = DeserializeFromString <TestData>(xml2); TestData testdata_deserialized8 = DeserializeFromString <TestData>(xml3); TestData testdata_deserialized9 = DeserializeFromString <TestData>(xml4); TestData testdata_deserialized10 = DeserializeFromString <TestData>(xml5); }
public static MemoryStream SerializeToStream(TestDataForSerialization testdata) { //How to populate testData with fruitlist ? (Because it is a list of xmlElements!) var ms = new MemoryStream(); StreamWriter sw = new StreamWriter(ms); // you need to use one of these to get UTF8 output var xs = new XmlSerializer(typeof(TestDataForSerialization)); xs.Serialize(sw, testdata); return(ms); }
public static TestDataForSerialization Convert(TestData testdata) { TestDataForSerialization testdata_toserialize = new TestDataForSerialization(); List <string> fruits = new List <string>(); foreach (XmlElement el in testdata.Fruits) { fruits.Add(el.InnerText); } testdata_toserialize.Fruits = fruits; return(testdata_toserialize); }