Ich habe eine Klasse mit XMLRoot und ein XMLElement für Array. Basierend auf dem Client, wenn ich meine Klasse serialisieren muss, muss ich XMLRoot und XMLElement ändern. Gibt es eine Möglichkeit, es dynamischXMLRoot-Element dynamisch einfügen oder aktualisieren
[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);
}
}
zu ändern Wie Sie sehen können, meine Wurzel ist „Probe“, basierend auf Client kann es „Probe“ oder „reserviert“ sein. XMLElement ist "url" und basiert auf Client kann es sein, "url" oder "Dataitem"
Ich Serialisierung XMLSerializer mit
// 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);
Vielen Dank im Voraus
Es funktioniert fast wie pro Ihre Lösung. Einziges Ding, das ich jetzt ausstelle, ist, dass ich xmlns Deklaration an oder level bekomme, die ich –
jvm
nicht will, erstellen Sie eine neue SO Frage und stellen Sie Details zur Verfügung. Ich freue mich über eine positive Antwort oder eine angenommene Antwort. –
Ich bekomme Xml version = "1.0" encoding = "utf-8"?> https: //www.domaincom/url .html immer 2017-09-11T04: 50: 27Z –
jvm