2009-08-31 8 views
0

J'essaie d'obtenir un fichier XML généré en utilisant un espace de noms en tant que tel:espace de noms XML dans ASP.net MVC, C#

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

J'ai essayé d'utiliser

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

mais je Il me manque clairement quelque chose. La structure que j'ai utilisé est

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

mais tout ce que je reçois est

<Example1> 
    <Part1>Value1</Part1> 
</Example1> 

Toute aide serait grandement appréciée.

Edit:

[XmlRoot(ElementName="Chart2", Namespace="vc")] 

ne fonctionne pas.

Répondre

0

Vous pouvez utiliser la classe XmlSerializerNamespaces pour ajouter le préfixe d'un espace de noms donné dans le fichier XML.

J'espère que le code ci-dessous vous fera mieux.

[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

Pouvez-vous essayer sur votre Model.cs:

Copiez le XML entier, puis sur les Model.cs: Edition> Collage spécial> Coller XML en tant que classes.

Pourrait vous aider. ;)

Questions connexes