2009-03-14 19 views

Antwort

6

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?

6

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.

2

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.

Verwandte Themen