2009-09-16 1 views
8

Ich habe eine DLL, die einige XSD-generierte Klassen enthält. Leider macht XSD.exe diese Klassen öffentlich, was dazu führt, dass "Fehlender XML-Kommentar für öffentlich sichtbaren Typ oder Mitglied XYZ" Warnungen. Außerdem möchte ich diese Klassen lieber nicht von meiner DLL aus verfügbar machen. Gibt es einen Weg, die generierten .cs manuell zu bearbeiten, um diese Klassen intern zu machen?Gibt es eine Möglichkeit, xsd.exe zum Generieren von Klassen mit "internem" Geltungsbereich zu erhalten?

Antwort

5

Dies ist eine sehr kurze Antwort, die zu einem Buch erweitert werden könnte.

Nein, xsd.exe kann nicht tun, was Sie wollen.

Sie können jedoch die in this article beschriebenen Techniken verwenden, um auf die Klasse XmlCodeExporter zuzugreifen, die Teil des Frameworks ist, das Code aus XML-Schemas generiert. Sobald dies erledigt ist, haben Sie eine Kopie des CodeDOM für den generierten Code im Speicher. Sie können alle Klassen im Namespace durchlaufen und sie auf intern setzen.

Es kann sein, dass der Aufwand, um diese eine Warnung zu entfernen, mehr ist, als Sie möchten.

Eine weitere Möglichkeit, um die Warnung zu entfernen, ist den Code in einer Baugruppe zu erzeugen, für die die XML-Dokumente ausgeschaltet sind (schließlich die Dokumentation für generierten Code? Braucht)

+0

Ja wir das auch aussehen. Am Ende haben wir ein awk-Skript geschrieben, das wir als Teil unseres Build-Prozesses aufrufen, um den generierten Code mit dem zu ergänzen, was wir brauchen. – womp

+1

Danke. Ich werde das unter "mehr Mühe, als es wert ist" einreichen, denke ich. –