2016-04-22 14 views
1

Ich habe 12 recht komplexe Schemas, die ich deserialisieren möchte. Sie bilden eine Art Hierarchie, die in jedem von ihnen die Definitionen anderer (anderer) benutzt. So verwende ich das XML Schema Definition-Tool wie diese, mit den Abhängigkeiten nach dem Schema deserialisiert werden:XSD Deserialisierung erzeugt eine Unordnung der partiellen Klassen

xsd.exe /c schema.xsd importedSchema1.xsd importedSchema2.xsd  importedSchema3.xsd importedSchema4.xsd 

und das Ergebnis ist so etwas wie:

schema.cs 
schema_importedSchema1.cs 
schema_importedSchema1_importedSchema2.cs 
schema_importedSchema1_importedSchema2_importedSchema3.cs 
schema_importedSchema1_importedSchema2_importedSchema3_importedSchema4.cs 

Und sie sind voll von Teilklassen . Es gibt einen Weg, dies zu vermeiden? Ich bin ein Neuling mit C# und es ist das erste Mal, dass ich mit der Serialisierung spiele, also dachte ich, dass ich etwas verpasse. Alle Beispiele, die ich finde, sind zu einfach, ich kann keine komplexe Situation wie diese finden. Ich weiß also nicht, was genau hier passiert, ob es einen besseren Weg gibt, es zu machen oder wie ich diese Klassen nutzen soll, wenn sie so aufgeteilt werden. Einige Vorschläge?

+0

Generieren Sie entweder die Serialize-Klassen selbst oder bearbeiten Sie manuell die generierten, die die partiellen Klassen kombinieren. – jdweng

+0

Serialize manuell ist keine Option -ist eine * riesige * Hierarchie. Ich könnte Ihre zweite Option in Betracht ziehen. Aber es wären auch Tage der manuellen Arbeit und die Schemata könnten sich mit der Zeit ändern, also wäre es schön, diesen Prozess zu automatisieren. Jedes meiner Schemata definiert ein Paket mit vielen Klassen. Aber ich lande mit einer öffentlichen Teilklasse ClassA {deklariert in 20 verschiedenen Dateien. In jeder dieser Dateien gibt es Klassen verschiedener Pakete. Wenn der Compiler in der Lage ist, Dinge in einem solchen Chaos zu finden, werde ich kein Komma ändern, aber einige der Deklarationen sind in verschiedenen Dateien identisch. – Heteroclito

+0

Schreiben Sie ein Werkzeug, um Duplikate zu entfernen. – jdweng

Antwort