Wie gebe ich die XML-Serialisierung Attribute Namespacepräfixe während der Deserialisierung in .NET zu unterstützen?

StackOverflow https://stackoverflow.com/questions/1254544

Frage

Ich habe eine folgende XML:

<person xmlns:a="http://example.com" xmlns:b="http://sample.net">
    <a:fName>John</a:fName>
    <a:lName>Wayne</a:lName>
    <b:age>37</b:age>
</person>

Wie definiere ich die XML-Serialisierung auf einem Klassenattributen beschrieben Szenario zu unterstützen?

War es hilfreich?

Lösung

Sie werden, um anzuzeigen, müssen die einzelnen Felder Namespaces erfordert durch die Verwendung von Namespace XmlElement Attribut. Auf diese Weise können Sie ein Feld mit einem bestimmten Namensraum verknüpfen, aber Sie müssen eine Eigenschaft auf Ihrer Klasse machen, die Art XmlNamespaceDeclarations um das Präfix Assoziation 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");
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top