0
我的陣列項目可以有不同的名稱,但它們都有簡單的字符串值,例如:的XmlSerializer:序列化元素的數組不同的元素名稱字符串
<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看起來像他們的(錯誤的)例子。
此外,這表明我不熟悉XML序列化,可以選擇使用[XmlElement]而不是[XmlArray]裝飾的項目數組,這會導致單個項目與最高級別屬性一起序列化的類。這實際上是我真正需要的,所以我將它重寫爲[XmlElement] List MyTypeACollection {get; set;} [XmlElement] TypeB MyTypeB {get; set;} –