【发布时间】:2017-11-10 21:36:52
【问题描述】:
我在数组上有一个 XMLRoot 和一个 XMLElement 的类。基于客户端,当我序列化我的类时,我必须更改 XMLRoot 和 XMLElement。有没有办法动态改变它
[XmlRoot("sample")]
public class MyData
{
private ArrayList map;
public MyData()
{
map = new ArrayList();
}
[XmlElement("url")]
public Location[] Locations
{
get
{
Location[] items = new Location[map.Count];
map.CopyTo(items);
return items;
}
set
{
if (value == null)
return;
Location[] items = (Location[])value;
map.Clear();
foreach (Location item in items)
map.Add(item);
}
}
public int Add(Location item)
{
return map.Add(item);
}
}
如您所见,我的根是“sample”,根据客户端,它可以是“sample”或“reserved”。 XMLElement 是“url”,根据客户端可以是“url”或“dataitem”
我正在使用 XMLSerializer 进行序列化
// My condition needs to be here to determine which
// root and xmlelement should use
var xs = new XmlSerializer(typeof(MyData));
var oString = new StringWriterWithEncoding(Encoding.UTF8);
提前致谢
【问题讨论】:
标签: c# xml xmlserializer