2009-08-10 3 views

Antwort

54

Sie müssen angeben, welche Namespaces jedes Feld erfordert, indem Sie den Namespace XmlElement Attribut verwenden. Dadurch können Sie ein Feld mit einem bestimmten Namespace verknüpfen. Sie müssen jedoch auch eine Eigenschaft für Ihre Klasse verfügbar machen, die den Typ XmlNamespaceDeclarations zurückgibt, um die Präfixzuordnung zu erhalten.

Siehe Dokumentation und Beispiel unter:

[XmlRoot(ElementName="person")] 
    public class Person 
    { 

     [XmlElement(Namespace="http://example.com")] 
     public string fname; 

     [XmlElement(Namespace="http://sample.com")] 
     public string lname; 

     [XmlNamespaceDeclarations] 
     public XmlSerializerNamespaces xmlns = new XmlSerializerNamespaces(); 

     public Person() 
     { 
      xmlns.Add("a", "http://example.com"); 
      xmlns.Add("b", "http://sample.com"); 
     } 
    } 
+0

Das ist es, Dank! –

+1

Eine Anmerkung für andere, scheint, dass das XmlSerializerNamespaces dingy nicht erforderlich ist, wenn Sie nur die Deserialisierung durchführen, obwohl ich es dennoch als eine gute Vorgehensweise betrachten würde. –

+1

Legende Ich suche seit Jahren nach diesem! – jcvandan

Verwandte Themen