1 回答

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊
經(jīng)過(guò)一些非常好的指導(dǎo)后,我解決了這個(gè)問(wèn)題:https ://stackoverflow.com/users/1124565/amura-cxg非常感謝!
解決方案是使用 XMLAttributes 注釋所有屬性。它正確地反序列化了響應(yīng)。至于Resource
屬性,我所需要的只是[XmlAttribute(AttributeName="Resource")]
其余的源代碼按原樣工作。
[XmlRoot(ElementName="MYAPI")]
public class MYAPI
{
[XmlElement(ElementName="MySite")]
public List<MySite> MySite { get; set; }
[XmlElement(ElementName="SomeOtherSite")]
public SomeOtherSite SomeOtherSite { get; set; }
}
public class MySite
{
[XmlElement(ElementName="Name")]
public string Name { get; set; }
[XmlElement(ElementName="URL")]
public string URL { get; set; }
[XmlElement(ElementName="SecondName")]
public string SecondName { get; set; }
[XmlAttribute(AttributeName="Resource")]
public string Resource { get; set; }
}
另外,我不需要任何自定義媒體格式化程序。從https://stackoverflow.com/users/1855967/elisabeth的一篇文章中,我了解到我們不應(yīng)該接觸 xsd.exe 工具生成的文件。所以我明確設(shè)置使用默認(rèn)XmlSerializer而不是DataContractSerializer使用:
var formatters = new List<MediaTypeFormatter>()
{
new XmlMediaTypeFormatter(){ UseXmlSerializer = true }
};
- 1 回答
- 0 關(guān)注
- 115 瀏覽
添加回答
舉報(bào)