2009-08-31 208 views
0

我試圖讓使用命名空間這樣生成的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")] 

不起作用。

回答

0

可以使用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> 
0

你可以試試這個在您的Model.cs:

複製整個XML,然後在Model.cs: 編輯>選擇性粘貼>粘貼XML作爲類。

可能對您有幫助。 ;)