Dot-Net
如何在 .NET 中的反序列化期間指定 XML 序列化屬性以支持命名空間前綴?
我有以下 XML:
<person xmlns:a="http://example.com" xmlns:b="http://sample.net"> <a:fName>John</a:fName> <a:lName>Wayne</a:lName> <b:age>37</b:age> </person>如何在類上定義 XML 序列化屬性以支持所描述的場景?
您需要使用XmlElement屬性的命名空間來指示每個欄位需要哪些命名空間。這將允許您將欄位與特定命名空間相關聯,但您還需要在您的類上公開一個返回類型XmlNamespaceDeclarations的屬性,以便獲得前綴關聯。
請參閱下面的文件和範例:
[XmlRoot(ElementName = "person")] public class Person { [XmlElement(Namespace = "http://example.com")] public string fname; [XmlElement(Namespace = "http://sample.com")] public string lname; [XmlNamespaceDeclarations] public XmlSerializerNamespaces xmlns = new XmlSerializerNamespaces(); public Person() { xmlns.Add("a", "http://example.com"); xmlns.Add("b", "http://sample.com"); } }