我有一个类似于他的
的xml<ns2:person xmlns:ns2="somenamespace">
<firstName>John</firstName>
<lastName>John</lastName>
</ns2:person>
我试着像这样反序列化:
var ser = new XmlSerializer(typeof(Person));
b = (Person)ser.Deserialize(new StringReader(xml));
T是一个班级
[XmlRoot(Name = "person", Namespace = "somenamespace")]
public class Person {
[XmlElement(ElementName = "firstName")]
public string fistName {get;set;}
[XmlElement(ElementName = "lastName")]
public string lastName {get;set;}
}
创建对象后,它的属性保持为空
如果删除<person>...
不幸的是我无法控制源xml,我需要了解其背后的原因并找出除了更改xml字符串(如果有的话)之外的解决方法。
答案 0 :(得分:3)
添加命名空间=&#34;&#34;到XmlElement属性
[XmlRoot(ElementName = "person", Namespace = "somenamespace")]
public class Person {
[XmlElement(ElementName = "firstName", Namespace = "")]
public string fistName { get; set; }
[XmlElement(ElementName = "lastName", Namespace = "")]
public string lastName { get; set; }
}