我只是对我的 Zthes format 做最后的润色反序列化器(System.Xml.Serialization)在元素“thes”中使用命名空间“dc”。所有“term”元素都可以很好地反序列化,因为它们没有命名空间,但我不知道如何告诉反序列化器“thes”元素有一个命名空间。
这是我正在尝试做的事情(它不起作用)所以希望有人能给我正确的语法。
[XmlElement("namespace:someElement")]
public string SomeElement;
最佳答案
这是给您的快速示例...
[XmlRoot("myObject")]
public class MyObject
{
[XmlElement("myProp", Namespace = "http://www.whited.us")]
public string MyProp { get; set; }
[XmlAttribute("myOther", Namespace = "http://www.whited.us")]
public string MyOther { get; set; }
}
class Program
{
static void Main(string[] args)
{
var xnames = new XmlSerializerNamespaces();
xnames.Add("w", "http://www.whited.us");
var xser = new XmlSerializer(typeof(MyObject));
using (var ms = new MemoryStream())
{
var myObj = new MyObject()
{
MyProp = "Hello",
MyOther = "World"
};
xser.Serialize(ms, myObj, xnames);
var res = Encoding.ASCII.GetString(ms.ToArray());
/*
<?xml version="1.0"?>
<myObject xmlns:w="http://www.whited.us" w:myOther="World">
<w:myProp>Hello</w:myProp>
</myObject>
*/
}
}
}
关于c# - 如何在 C# (System.Xml.Serialization) 中反序列化 XML 命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1544869/