[ad_1]
I have this object
var myObj = new Root
{
Items = new List<Items>
{
new Items { MyValue1 = "test", MyValue2 = 22 },
new Items { MyValue1 = "test2", MyValue2 = 44 },
}
};
with
public class Root
{
public List<Items> Items { get; set; }
}
public class Items
{
public string MyValue1 { get; set; }
public int MyValue2 { get; set; }
}
I can serialize it like this :
<Root>
<Items>
<Items>
<MyValue1>test</MyValue1>
<MyValue2>22</MyValue2>
</Items>
<Items>
<MyValue1>test2</MyValue1>
<MyValue2>44</MyValue2>
</Items>
</Items>
</Root>
But I would like to serialize like :
<Items>
<MyValue1>test</MyValue1>
<MyValue2>22</MyValue2>
</Items>
<Items>
<MyValue1>test2</MyValue1>
<MyValue2>44</MyValue2>
</Items>
But I can’t find a way to do this
This is the reproduction code :
class Program
{
static void Main(string[] args)
{
var myObj = new Root
{
Items = new List<Items>
{
new Items { MyValue1 = "test", MyValue2 = 22 },
new Items { MyValue1 = "test2", MyValue2 = 44 },
}
};
var serializer = new XmlSerializer(typeof(Root));
var ms = new MemoryStream();
var settings = new XmlWriterSettings { Encoding = new UTF8Encoding(false), OmitXmlDeclaration = true };
using var xmlWriter = XmlWriter.Create(ms, settings);
var ns = new XmlSerializerNamespaces();
ns.Add(string.Empty, string.Empty);
serializer.Serialize(xmlWriter, myObj, ns);
var xmlDebug = Encoding.UTF8.GetString(ms.ToArray());
var result = @"<?xml version=""1.0"" encoding=""utf-8""?><Items><MyValue1>test</MyValue1><MyValue2>22</MyValue2></Items><Items><MyValue1>test2</MyValue1><MyValue2>44</MyValue2></Items>";
Assert.AreEqual(result, xmlDebug);
}
}
public class Root
{
public List<Items> Items { get; set; }
}
public class Items
{
public string MyValue1 { get; set; }
public int MyValue2 { get; set; }
}
[ad_2]