具有相同名称的C#XML序列化XmlNodes

时间:2017-01-21 14:02:36

标签: c# xml serialization

我目前正在开发一个C#工具,它必须序列化和反序列化包含具有相同名称但内容/属性不同的嵌套对象的对象。它基本上是一个具有n个级别的通用列表,其中节点具有相同的名称具有不同的内容,具体取决于父节点。现在我遇到的问题是我无法使用默认的XML-Serializer,因为如果有不同的类具有相同的名称,它就不知道要选择哪个类。

示例Xml:

[System.Xml.Serialization.XmlRoot("assembly")]
public class AssemblyClass
{
       [System.Xml.Serialization.XmlElement("content")]
       public ContentClass Content
}

课程:

AssemblyClass.cs

public class Content
{
       [System.Xml.Serialization.XmlElement]
       public List<ContentEntry> Entries;
}

ContentClass.cs

public class ContentEntry
{
       [System.Xml.Serialization.XmlElement]
       public List<ContentEntry> SubEntries;
}

ContentEntry.cs

public class add : ContentEntry
{
       [System.Xml.Serialization.XmlAttribute("x")]
       public String X;

       [System.Xml.Serialization.XmlAttribute("y")]
       public String Y;
}

通用/ add.cs

public class xml : ContentEntry
{
      [System.Xml.Serialization.XmlAttribute("path")]
      public String Path;
}

通用/ xml.cs

public class add : ContentEntry
{
      [System.Xml.Serialization.XmlAttribute("z")]
      public String Z;
}

XML / add.cs

{{1}}

无论如何我可以存档吗?或者我是否必须在XmlSerializer中实现某种逻辑?

最诚挚的问候,

0 个答案:

没有答案