2009-08-31 6 views
0

내가 같은 네임 스페이스를 사용하여 생성 된 XML 파일을 얻으려고 : 나는XML 네임 스페이스, C#을

[XmlAttribute(Namespace = "namespace")] 
    public string Namespace { get; set; } 

하지만 '사용 해봤

<namespace:Example1> 
    <namespace:Part1>Value1</namespace:Part1> 
</namespace:Example1> 

을 분명히 뭔가 빠졌어요. 내가 사용했던 구조는

[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에 이것을 시도 할 수 : 다음 Model.cs에

복사 전체 XML : 편집> 클래스 같은 특수> 붙여 넣기 XML을 붙여 넣기합니다.

도움이 될 수 있습니다. ;)