XML in C# Klasse Frage
Kann mir bitte jemand helfen, ich habe diese xml-snippet
<?xml version="1.0" encoding="utf-8" ?>
<EmailConfiguration>
<DataBoxID>123</DataBoxID>
<DefaultSendToAddressCollection>
<EmailAddress>[email protected]</EmailAddress>
</DefaultSendToAddressCollection>
</EmailConfiguration>
Ich möchte erstellen Sie eine corressponding c# - Klasse aus dieser. Bevor Sie sagen - "Nur verwenden xsd.exe" die Ausgabe von Xsd nicht serialisiert und deserialisiert richtig, denn es erzeugt die Klasse mit partiellen Klassen.
Bitte können Sie mir sagen, wie diese Klasse erstellt.... hier ist der Ansatz, den ich nahm, aber es funktioniert nicht.
public class EmailConfiguration
{
private string dataBoxID;
public string DataBoxID
{
get { return dataBoxID; }
set { dataBoxID = value; }
}
private DefaultSendToAddressCollectionClass defaultSendToAddressCollection;
public DefaultSendToAddressCollectionClass DefaultSendToAddressCollection
{
get { return defaultSendToAddressCollection; }
set { defaultSendToAddressCollection = value; }
}
}
Und hier ist die Deklaration der Klasse für die Unterklasse
public class DefaultSendToAddressCollectionClass
{
private string[] emailAddress;
public string[] EmailAddress
{
get { return emailAddress; }
set { emailAddress = value; }
}
}
- was ist Los mit partiellen Klassen überhaupt? es trennt Ihre XML-definition-Datei von Ihrem business-Logik für die gleiche Klasse.
- Vielleicht hilft dies jemanden, der auf der Suche ähnliche Lösung stackoverflow.com/a/10353093/1221319
Du musst angemeldet sein, um einen Kommentar abzugeben.
Minimum arbeiten... sieht aus wie Sie sind nur erforderlich, um ein Attribut.
Hast du VS2008 ist XSD?
Hier ist die Ausgabe, die ich bekam:
Erzeugt serialisierbare Ausgabe:
Haben Sie zwei Möglichkeiten.
Methode 1. XSD tool
Nehme an, dass Sie Ihre XML-Datei an dieser Stelle
C:\path\to\xml\file.xml
Sie finden es in
Start Menu > Programs > Microsoft Visual Studio 2012 > Visual Studio Tools
Oder wenn Sie Windows 8 können einfach mit der Eingabe beginnen Developer-Eingabeaufforderung in Startseite
cd /D "C:\path\to\xml"
xsd file.xml
xsd /c file.xsd
... Und das ist es! Sie generierten C# - Klassen aus xml-Datei in
C:\path\to\xml\file.cs
Methode 2 - " Inhalte Einfügen
Benötigt Visual Studio 2012+
Edit > Paste special > Paste XML As Classes
... Und das ist es!
Nutzung
Bedienung ist sehr einfach, mit diese helper-Klasse:
Alles, was Sie jetzt tun müssen, ist:
Hier finden Sie einige Online -
XML <--> JSON
- Wandler: Klicken Sie aufVerwenden .NET 3.5:
XSD.EXE ist das tool erzeugt Klassen, die speziell für den Zweck der XML-Serialisierung. Wenn es produziert partielle Klassen, weil Sie die Arbeit für die XML-Serialisierung. Das ist nicht, was dein problem ist.
Versuchen Sie es mit XSD.EXE und serialisieren /Deserialisieren. Wenn Sie erneut eine Ausnahme ausgelöst, dann bitte fangen Sie es, und dann die Ergebnisse posten von ex.ToString().
Diese Klasse serialisieren, die Sie wünschen. Ich änderte Ihr custom Sammlung auf eine Liste und verwendet die XmlArrayItem-Attribut, um anzugeben, wie die einzelnen E-Mail-Adresse würde serialisiert werden. Es gibt viele Attribute, mit denen Sie eine Feinabstimmung der Serialisierungs-Prozess.
XML-Serialisierung Attribute erfordert. Die Art, wie ich normalerweise getan, es ist die fahne der Klasse selbst mit [Serializable] und [XmlRoot], dann markieren öffentliche Eigenschaften mit [XmlElement], [XmlAttribute] oder [NoSerialize].
Was bestimmtes problem haben Sie?