我的数组项可以有不同的名称,但它们都有简单的字符串值,例如:
<MyArray>
<TypeA>foo</TypeA>
<TypeA>bar</TypeA>
<TypeB>bazz</TypeB>
</MyArray>
我如何实现这一目标?
我在这里查看MSDN上的文档:https://msdn.microsoft.com/en-us/library/2baksw0z(v=vs.110).aspx
有一个看起来像我想要的例子,但我不能按照他们说的那样工作:
public class Employee {
public string Name;
}
public class Group {
[XmlArrayItem("MemberName")]
public Employee[] Employees;
}
结果XML应该如下所示:
<Group>
<Employees>
<MemberName>Haley</MemberName>
</Employees>
</Group>
但是,当我运行此示例时,我得到以下XML:
<Group>
<Employees>
<MemberName>
<Name>Haley</Name>
</MemberName>
</Employees>
</Group>
我假设文档中存在错误(我在代码中看不到任何应该神奇地导致类Employee的值被其Name属性替换的值) ,但我真的有兴趣让我的XML看起来像他们的(错误的?)示例。
答案 0 :(得分:0)
我在发布问题后立即找到了解决方案:使用XmlTextAttribute。
在他们的示例中,Employee类应该如下所示:
public class Employee {
[XmlText]
public string Name;
}
就我而言,我的集合可以包含TypeA和TypeB,其中每个类型都有一个带有[XmlText]属性的成员。