0
所以這可能是一些隨機請求,但任何幫助都會被大大接收! 我對XML文件,它是這樣工作的...將帶有2個不同XmlElementAttributes的xml反序列化爲一個數組
<images>
<image>
<url>
http://www.someUrl.com
</url>
</image>
<bonusimage>
<url>
http://www.someOtherUrl.com
</url>
</bonusimage>
</images>
什麼,我試圖做的是以下幾點:
[XmlArray("images")]
[XmlElementAttribute("image", Type = typeof(CustomImageClass), IsNullable = false)]
[XmlElementAttribute("bonusimage", Type = typeof(CustomImageClass), IsNullable = false)]
[XmlChoiceIdentifierAttribute("ItemsElementName")]
public CustomImageClass[] items;
[XmlElementAttribute(IsNullable = false)]
[XmlIgnoreAttribute()]
public ImageType[] ItemsElementName;
我也定義了像枚舉:
[XmlType(IncludeInSchema = false)]
public enum ImageType
{
[XmlEnumAttribute("image")]
CustomImage,
BonusImage,
}
我試圖按照下面介紹我的問題的網頁上的第二個方案。
然而運行此代碼導致以下錯誤:會員「項」指定
歧義的類型。項目'bonusimage'和'圖像'具有相同的類型。請考慮使用XmlChoiceIdentifierAttribute代替XmlElementAttribute。
對不起,對於這個龐大的帖子,我一直在撞牆撞了一會兒,想給儘可能多的信息!我想我需要第二雙眼睛來幫助我瞭解我的錯誤。
再次感謝!
不幸的是,我不認爲你可以做到這一點。這看起來應該是一個「非此即彼」的選擇,而不是一個包羅萬象的選擇。不幸的是,我認爲你最好的選擇是有兩個唯一的字段將xml反序列化,然後有一個將圖像和紅利圖像連接成一個數組/列表/任意的唯一獲取唯一字段。 – Tory