Frage

Lets sagen, ich habe die folgende XML-Datei:

<?xml version="1.0" encoding="utf-8"?>
<Customers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Customer.xsd">
    <Customer>
        <FirstName></FirstName>
        <LastName></LastName>
    </Customer>
    <Customer>
        <FirstName></FirstName>
        <LastName></LastName>
    </Customer>
    <Customer>
        <FirstName></FirstName>
        <LastName></LastName>
    </Customer>
</Customer>

ich habe auch ein Customer-Objekt, das auf die entsprechenden Felder abbildet.

Nun, wenn ich versuche, diese als solche auf eine generische Liste zu serialisiert:

XmlSerializer xml = new XmlSerializer(typeof(List<Customer>));

Ich werde eine Ausnahme erhalten, weil meine Liste nicht auf den gleichen Namensraum wie die Kunden in dem XML-Dokument zugeordnet ist, und ich kann es als Attribut nicht hinzufügen, weil ich eine generische Liste bin mit, keinem benutzerdefinierten Sammlung

Wie kann ich sagen, das Serializer den Namensraum der Liste übereinstimmen, ohne eine eigene Sammlung zu erstellen?

Edit: Ich soll etwas erarbeiten, die Ausnahme von den Serializer geworfen ist:

(Kunden xmlns = ''> wurde nicht erwartet.

Nun, weil ich eine List (T) als Mutterknoten verwendet wird, wie kann ich die generische Liste auf den Namespace übereinstimmen im XML-Dokument angegeben?

War es hilfreich?

Lösung

Ich denke, der Fehler hat mit den Knoten nicht die xmlns zu tun.

Versuchen

XmlRootAttribute xr = new XmlRootAttribute("Customers");
XmlSerializer xs = new XmlSerializer(typeof(List<Customer>), xr); 

Standardmäßig wäre es ein Knoten erwarten

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top