Ist es möglich, Kontrolle über die Klassennamen zu haben, die mit dem .Net XSD.exe-Tool generiert werden?Mit XSD.exe benutzerdefinierte Klassennamen generierte Klassen
Antwort
Soweit ich weiß, glaube ich nicht, dass dies möglich ist, die Klassennamen stimmen fast genau mit dem im Schema überein.
Persönlich würde ich die Klassennamen ändern, nachdem XSD den Code generiert hat, aber um ehrlich zu sein, bleibe ich normalerweise einfach bei dem, was XSD generiert. Es ist dann einfacher für jemanden, der den Code liest, um zu verstehen, welche Klassen welchen Teilen des XML zugeordnet sind.
Wenn Sie Kontrolle über das Schema haben, können Sie das auch ändern?
Grundsätzlich keine. Wenn Sie die Klassen zu schreiben waren manuell, könnten Sie haben:
[XmlType("bar")]
class Foo {}
jedoch können Sie dies nicht mit den XSD-generierten Klassen. Leider kann eines der Dinge, die Sie nicht können tun mit einem ist es umbenennen. Natürlich könnten Sie xsd
verwenden, um es zu generieren, ändern Sie die CS-Datei und generieren Sie es nicht erneut, aber das ist nicht ideal für die Wartung.
Jedes Schema mit etwas tiefer Verschachtelung endet dann mit völlig nutzlosen Namen.
Ich kenne keinen Weg, um das Problem zu umgehen, aber mein Tipp, um zumindest die negativen Auswirkungen zu reduzieren, ist dies: Definieren Sie eine Liste von Aliasen für die schrecklich benannten Typen. Auf diese Weise können Sie Code schreiben, der nicht vollständig unlesbar ist, ohne die Regenerierungsfähigkeit zu verlieren.
using AgentAddress = Example.Namespace.DataContract.RootElementNestedElementAgentAddress; ...
Es ist schade, diese Liste sich an alle Code-Dateien benötigen sie kopieren kleistert werden muss, aber ich denke, das ist zumindest eine Verbesserung darstellt.
- 1. xsd.exe generierte Klassen nicht Standardwerte Attribute
- 2. Nullable-Wert mit xsd.exe generierte Klasse
- 3. Können wir Typnamen in xsd.exe Werkzeug generierte Klasse
- 4. Präfixing JAXB generierte Klassen
- 5. Generierte Klassen nicht gefunden
- 6. JAXB generierte Klassen bestimmter Typen, die eine benutzerdefinierte Schnittstelle implementieren
- 7. Generierte Klassen von JAXB sind nicht erkennbar
- 8. Problem mit der XML-Deserialisierung in XSD generierte Klassen
- 9. Füllen Klasse Eigenschaften generiert von XSD.exe
- 10. Einführungs-Bildschirme können nicht benutzerdefinierte Klassennamen gesetzt
- 11. Gibt es eine Möglichkeit, xsd.exe zum Generieren von Klassen mit "internem" Geltungsbereich zu erhalten?
- 12. xsd.exe/XMLSerializer für Java?
- 13. XSD.exe erzwingt nicht minOccurs
- 14. Generieren Sie Klassen aus XML: xsd.exe nicht gefunden
- 15. Wie programmgesteuert generieren .NET-Klassen von XSD? (Wie xsd.exe tun)
- 16. xsd.exe Ausgabedateiname
- 17. Zwei Klassen in zwei Geräten mit gleichem Klassennamen in Delphi
- 18. ASP.NET MVC + LINQ Generierte Klassen + DataAnnotations
- 19. POCO Vs Entity Framework Generierte Klassen?
- 20. Mehr Validierung für generierte Linq-Entity-Klassen
- 21. Verwenden von XmlIgnore für generierte partielle Klassen
- 22. Benutzerdefinierte JavaScriptConverter-Klassen
- 23. XSD.exe und "Circular Group references"
- 24. Wie werden JavaScript-Klassennamen für benutzerdefinierte Klassen in Chrome Dev Tools berechnet?
- 25. Inno-Setup: Benutzerdefinierte Klassen
- 26. Datagrid automatisch generierte Spalten benutzerdefinierte Vorlage Bindung
- 27. Sortierung mit Komparator- Absteigende Reihenfolge (benutzerdefinierte Klassen)
- 28. Mapping benutzerdefinierte Enum-Klassen mit Fluent Nhibernate
- 29. xsd.exe Automatisch implementierte Eigenschaften
- 30. xsd.exe - Schema zur Klasse - zur Verwendung mit WCF
Diese Antwort könnte nützlich sein http://stackoverflow.com/questions/14853905/can-we-control-type-name-in-xsd-exe-tool-generated-class – Phil