2009-08-10 12 views

Odpowiedz

54

Musisz wskazać, które przestrzenie nazw wymagane są w każdym polu, używając Atrybutu przestrzeni nazw o wartości XmlElement. Umożliwi to powiązanie pola z konkretną przestrzenią nazw, ale konieczne będzie również ujawnienie właściwości klasy, która zwraca typ XmlNamespaceDeclarations w celu uzyskania powiązania prefiksu.

Patrz dokumentacja i próbka poniżej:

[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

To jest to, dzięki! –

+1

Jedna uwaga dla innych, wydaje się, że obiekt XmlSerializerNamespaces nie jest wymagany, jeśli przeprowadzasz deserializację, chociaż i tak uznałbym to za dobrą praktykę. –

+1

legenda Szukałem od tego wieku! – jcvandan

Powiązane problemy