【发布时间】:2016-05-05 02:22:00
【问题描述】:
我有以下 xml:
<Applications>
<AccessibleApplication></AccessibleApplication>
<AccessibleApplication></AccessibleApplication>
<EligibleApplication></EligibleApplication>
<EligibleApplication></EligibleApplication>
</Applications>
有没有办法将其反序列化为 C# 对象,以便 AccessibleApplications 和 EligibleApplications 是两个独立的数组?我尝试了以下方法,但出现异常,因为“应用程序”被多次使用。
[XmlArray("Applications")]
[XmlArrayItem("AccessibleApplication")]
public List<Application> AccessibleApplications { get; set; }
[XmlArray("Applications")]
[XmlArrayItem("EligibleApplication")]
public List<Application> EligibleApplications { get; set; }
例外情况是: 命名空间“”中的 XML 元素“应用程序”已存在于当前范围内。使用 XML 属性为元素指定另一个 XML 名称或命名空间。
这可能吗?
谢谢!
编辑:我忘了说我不想仅仅为了为两个数组提供一个容器对象而有一个“应用程序”类。我有几种这样的情况,我不希望这些类杂乱无章,其唯一目的是拆分两个相同类型的数组。
我希望能够使用诸如 [XmlArrayItem="Application/AccessibleApplication"] 之类的某种标签将两个数组反序列化为外部对象,而无需创建“应用程序”类。
【问题讨论】:
标签: c# xml xml-serialization xmlserializer xml-deserialization