XML zu C # Klasse Frage

7

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%     
JL. 15.07.2009, 18:11
quelle

7 Antworten

3

Bare minimum working ... sieht so aus, als ob Sie nur ein Attribut hinzufügen müssen.

%Vor%     
Matthew Whited 15.07.2009, 19:04
quelle
11

Haben Sie VS2008 XSD verwendet?

Hier ist die Ausgabe, die ich bekommen habe:

%Vor%

Erzeugt serialisierbare Ausgabe:

%Vor%     
Shane Castle 15.07.2009 18:19
quelle
10

Sie haben zwei Möglichkeiten.

Methode 1. XSD Werkzeug

Angenommen, Sie haben Ihre XML-Datei an diesem Speicherort C:\path\to\xml\file.xml
  1. Öffnen Sie die Entwickler-Eingabeaufforderung
    Sie finden es in 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
  2. Ändern Sie den Speicherort in Ihr XML-Dateiverzeichnis, indem Sie cd /D "C:\path\to\xml" eingeben.
  3. Erstellen Sie die XSD-Datei aus Ihrer XML-Datei, indem Sie xsd file.xml
  4. eingeben
  5. Erstellen Sie C # -Klassen , indem Sie xsd /c file.xsd eingeben.

Und das ist es! Sie haben C # -Klassen aus der XML-Datei in C:\path\to\xml\file.cs

generiert

Methode 2 - Paste special

Erforderliches Visual Studio 2012+
  1. Kopieren Sie den Inhalt Ihrer XML-Datei in die Zwischenablage
  2. Fügen Sie Ihrer Lösung eine neue, leere Klassendatei hinzu ( Shift + Alt + C )
  3. Öffnen Sie diese Datei und klicken Sie im Menü auf Edit > Paste special > Paste XML As Classes

Und das ist es!

Verwendung

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

    
Damian Drygiel 27.10.2013 02:07
quelle
3

Verwenden von .NET 3.5:

%Vor%     
Zanoni 15.07.2009 18:25
quelle
1

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 ().

    
John Saunders 15.07.2009 18:21
quelle
1

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%     
Chris Dunaway 15.07.2009 18:36
quelle
0

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?

    
Steven Sudit 15.07.2009 18:18
quelle

Tags und Links