Я хотел бы сериализовать структуру классов C# в XML и предоставить определенное имя узла без необходимости иметь кучу вложенных классов. Возможно ли использование атрибутов?Можно ли указать имя и глубину узла XML с атрибутами
Например у меня есть следующий XML:
<OuterItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<InnerItem>
<ItemValue>something i need</ItemValue>
</InnerItem>
</OuterItem>
У меня есть метод сериализации XML, который выглядит следующим образом:
public static string XmlSerializeToString<T>(T value)
{
if (value == null) { return null; }
XmlSerializer serializer = new XmlSerializer(typeof(T));
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = false;
settings.OmitXmlDeclaration = true;
using (StringWriter textWriter = new StringWriter())
using (XmlWriter xmlWriter = XmlWriter.Create(textWriter, settings))
{
serializer.Serialize(xmlWriter, value);
return textWriter.ToString();
}
}
бы я должен иметь C# классовой структуру, как это?
public class OuterItem
{
public InnerItem InnerItem { get; set; }
}
public class InnerItem
{
public string ItemValue { get; set; }
}
Или это вообще возможно, чтобы объявить, как далеко вниз в документе XML мой узел должен быть чем-то вроде этого (псевдо-код):
public class OuterItem
{
[XmlNode("InnerItem\ItemValue")]
public string ItemValue { get; set; }
}