XML命名空间,C#
问题描述:
我试图让使用命名空间这样生成的XML文件:XML命名空间,C#
<namespace:Example1>
<namespace:Part1>Value1</namespace:Part1>
</namespace:Example1>
我使用
[XmlAttribute(Namespace = "namespace")]
public string Namespace { get; set; }
但我试过米显然缺少的东西。我使用的结构是
[XmlRoot("Example1")]
public class Blah
{
[XmlAttribute(Namespace = "namespace")]
public string Namespace { get; set; }
,但我得到的是
<Example1>
<Part1>Value1</Part1>
</Example1>
任何帮助将不胜感激。
编辑:
[XmlRoot(ElementName="Chart2", Namespace="vc")]
不起作用。
答
可以使用XmlSerializerNamespaces类为xml中的给定名称空间添加前缀。
我希望下面的代码能让你更好。
[XmlRoot(ElementName = "Example1")]
public class Blah
{
public string Part1 { get; set; }
}
Blah bl = new Blah();
bl.Part1 = "MyPart1";
// Serialization
/* Create an XmlSerializerNamespaces object and add two prefix-namespace pairs. */
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("namespace", "test");
XmlSerializer s = new XmlSerializer(typeof(Blah),"test");
TextWriter w = new StreamWriter(@"c:\list.xml");
s.Serialize(w, bl,ns);
w.Close();
/* Output */
<?xml version="1.0" encoding="utf-8"?>
<namespace:Example1 xmlns:namespace="test">
<namespace:Part1>MyPart1</namespace:Part1>
</namespace:Example1>
答
你可以试试这个在您的Model.cs:
复制整个XML,然后在Model.cs: 编辑>选择性粘贴>粘贴XML作为类。
可能对您有帮助。 ;)