Kann mir bitte jemand helfen, ich habe dieses XML-Snippet
%Vor%Ich möchte daraus eine entsprechende c # -Klasse erstellen. Bevor Sie sagen - "Verwenden Sie einfach xsd.exe", kann die Ausgabe von Xsd nicht serialisiert und deserialisiert werden, weil sie die Klasse unter Verwendung partieller Klassen generiert.
Bitte können Sie mir sagen, wie man diese Klasse erstellt .... hier ist der Ansatz, den ich gemacht habe, aber es funktioniert nicht.
%Vor%Und hier ist die Klassendeklaration für die Unterklasse
%Vor%Bare minimum working ... sieht so aus, als ob Sie nur ein Attribut hinzufügen müssen.
%Vor%Haben Sie VS2008 XSD verwendet?
Hier ist die Ausgabe, die ich bekommen habe:
%Vor%Erzeugt serialisierbare Ausgabe:
%Vor%Sie haben zwei Möglichkeiten.
Angenommen, Sie haben Ihre XML-Datei an diesem Speicherort
C:\path\to\xml\file.xml
Start Menu > Programs > Microsoft Visual Studio 2012 > Visual Studio Tools
Oder wenn Sie Windows 8 haben, können Sie einfach Entwickler-Eingabeaufforderung in Startbildschirm eingeben
cd /D "C:\path\to\xml"
eingeben.
xsd file.xml
xsd /c file.xsd
eingeben.
Und das ist es! Sie haben C # -Klassen aus der XML-Datei in C:\path\to\xml\file.cs
Erforderliches Visual Studio 2012+
Edit > Paste special > Paste XML As Classes
Und das ist es!
Die Verwendung ist sehr einfach mit dieser Hilfsklasse:
%Vor%Alles, was Sie jetzt tun müssen, ist:
%Vor% Hier haben Sie einige Online XML <--> JSON
Converter: Klicken Sie
XSD.EXE ist das Werkzeug, das Klassen speziell für den Zweck der XML-Serialisierung erzeugt. Wenn es partielle Klassen erzeugt, liegt das daran, dass sie für die XML-Serialisierung arbeiten. Das ist nicht dein Problem.
Verwenden Sie XSD.EXE und Serialisierung / Deserialisierung. Wenn Sie erneut eine Ausnahme erhalten, fangen Sie sie bitte ab und veröffentlichen Sie dann die Ergebnisse von ex.ToString ().
Diese Klasse wird serialisiert, wie Sie möchten. Ich habe Ihre benutzerdefinierte Sammlung in eine Liste geändert und das XmlArrayItem-Attribut verwendet, um anzugeben, wie jede E-Mail-Adresse serialisiert wird. Es gibt viele solche Attribute, die Ihnen helfen, den Serialisierungsprozess zu optimieren.
%Vor%XML-Serialisierung erfordert Attribute. Die Art, wie ich es normalerweise getan habe, ist, die Klasse selbst mit [Serializable] und [XmlRoot] zu kennzeichnen, dann markiere öffentliche Eigenschaften entweder mit [XmlElement], [XmlAttribute] oder [NoSerialize].
Welches spezielle Problem haben Sie?