Wie serialisiert XML generische Auflistung, wenn Namespace angegeben wird
-
05-07-2019 - |
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?
Lösung
Ich denke, der Fehler hat mit den
Versuchen
XmlRootAttribute xr = new XmlRootAttribute("Customers");
XmlSerializer xs = new XmlSerializer(typeof(List<Customer>), xr);
Standardmäßig wäre es ein