我使用 XML 文件和 XmlReader 来填充类对象。
这是我的类对象:
public class WikiMeta
{
string _subject;
public List<WikiArticle> Articles = new List<WikiArticle>();
public List<WikiGroup> Groups = new List<WikiGroup>();
public string PageMetaDescription { get; set; }
public string PageTitle { get; set; }
public string Route { get; set; }
public string Subject { get; set; }
}
这是一个 XML 示例:
<AllMeta>
<WikiMeta>
<Subject>The Subject</Subject>
<PageTitle>Page title</PageTitle>
<PageMetaDescription>Page meta description</PageMetaDescription>
<Articles>
<WikiArticle>
<FileName>file.txt</FileName>
</WikiArticle>
</Articles>
<Groups>
<WikiGroup>
<Name>Main group</Name>
</WikiGroup>
<WikiGroup>
<Name>Secondary group</Name>
</WikiGroup>
</Groups>
</WikiMeta>
</AllMeta>
使用 XmlReader 类,XML 会自动映射到我的类属性,但是,我现在想介绍文章类型的变体。对我来说,两个明显的解决方案是:
- 用 2 个新组 PeerGroup 和 ChildGroup 替换 WikiGroup
- 在 WikiGroup 中添加一个 Type 元素
但是,我想知道是否有一种方法可以将属性添加到 WikiGroup 并将其映射到我的类中的两个不同属性,如下所示:
WikiGroup attr="peer">
<Name>Main group</Name>
</WikiGroup>
[XmlAttribute("peer")]
public WikiGroup PeerGroup { get; set; }
[XmlAttribute("child")]
public WikiGroup ChildGroup { get; set; }
我不知道这是否可能,但任何建议将不胜感激。