Ich habe eine XML-Datei, die verschiedene Autohersteller darstellt und in meinem Spiel verfügbar sein wird. Die Datei sieht folgendermaßen aus:
<?xml version="1.0" encoding="utf-8" ?>
<XnaContent>
<Asset Type="List[string]">
<car>Audi</car>
<car>BMW</car>
<car>Nissan</car>
<car>Volvo</car>
</Asset>
</XnaContent>
Beim Hinzufügen zu meinem Inhaltsordner gibt der Compiler den folgenden Fehler zurück:
There was an error while deserializing intermediate XML. Cannot find type "List`1"
Wie kann ich eine Liste von Zeichenfolgen erstellen, in XML einfügen und von XNA lesen?
XmlImporter
Teil der XNA Content Pipeline. Die Pipeline deserialisiert das XML, um es in eine XNB-Datei zu konvertieren (die dannContentManager
zur Laufzeit von geladen wird ).Antworten:
Ich habe nicht versucht, genau herauszufinden, was mit Ihrem XML nicht stimmt - es ist wahrscheinlich das Fehlen eines Namespace. Aber hier ist das richtige XML:
Unter der Haube
XmlImporter
benutzt der dieIntermediateSerializer
Klasse. So ein kleines Programm , wie die folgenden verwendet werden kann , um festzustellen , was Ihre XML sollte wie folgt aussehen:(Sie können die Ausgabe sogar in einen Stream konvertieren, an die
Deserialize
Methode übergeben und das Objekt rekonstruieren - nur um doppelt sicher zu sein, dass es funktioniert. Außerdem lohnt es sich wahrscheinlich, die richtige Codierung in den HeaderStringBuilder
einzufügen - z. B.: Ist utf-16 .)Ausführliche Informationen zu
IntermediateSerializer
finden Sie in Shawn Hargreaves 'Blog. Beginnen Sie mit diesem Beitrag und gehen Sie bis August 2008 durch die Archive.quelle
Wenn Sie anhand eines Codebeispiels sehen möchten, wie dies funktioniert, finden Sie hier ein Beispiel, das XML verwendet, wie Sie es unter http://create.msdn.com/en-US/education/catalog/sample/collision möchten
Wenn Sie Artikel lesen möchten, in denen erklärt wird, was los ist, und einen Einblick in die Arbeit mit XML und dem Inhaltsprozessor erhalten möchten, gehen Sie zu diesem Link, scrollen Sie zum Abschnitt für den Zwischenserialisierer und lesen Sie dort die 8 oder 9 Artikel. http://www.talula.demon.co.uk/blogindex.html
quelle