public static void Test() { DataContractSerializer dcs = new DataContractSerializer(typeof(List <string>)); MemoryStream ms = new MemoryStream(); List <string> list = new List <string> { "Hello", "", "world" }; dcs.WriteObject(ms, list); Console.WriteLine(Encoding.UTF8.GetString(ms.ToArray())); Console.WriteLine(); ms.SetLength(0); XmlWriter myWriter = new MyWriter(XmlDictionaryWriter.CreateTextWriter(ms)); dcs.WriteObject(myWriter, list); myWriter.Flush(); Console.WriteLine(Encoding.UTF8.GetString(ms.ToArray())); }