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作为类。

可能对您有帮助。 ;)