假设我有xml数据存储在字符串变量中。所以当我试图将xml反序列化到我的类时,我的属性名称会出错。
[XmlAttribute("Name")]
public string CompanyName
{
get
{
return __CompanyName;
}
set
{
if (value != null)
__CompanyName = value;
else
__CompanyName = "";
}
}
实际上我收到错误,因为在我的xml中有Name标签,但在我的代码中,属性名称是CompanyName。这就是我收到错误的原因。有没有办法在我的属性中映射属性作为结果名称将与CompanyName映射,并且在反序列化期间不会出现问题。请帮忙。 [XmlAttribute(“Name”)] ...它应该是xmlelement而不是XmlAttribute。需要帮助。
答案 0 :(得分:4)
更改名称很好;你只需要正确的属性。您没有显示XML,但看起来您只需要
[XmlElement("Name")]
public string CompanyName {...etc...}
如果该类型不在您的控制范围内,您可以使用XmlAttributeOverrides
重新培训XmlSerializer
- 但如果您这样做, 必须 缓存并重新使用序列化程序实例(否则会泄漏内存)。