Gibt es eine Möglichkeit, xsd.exe zum Generieren von Klassen mit "internem" Geltungsbereich zu erhalten?

8

Ich habe eine DLL, die einige XSD-generierte Klassen enthält. Unglücklicherweise macht XSD.exe diese Klassen öffentlich, was zu "Fehlender XML-Kommentar für Warnungen des öffentlich sichtbaren Typs oder des Elements XYZ" führt. Außerdem möchte ich diese Klassen lieber nicht von meiner DLL aus verfügbar machen. Gibt es eine Möglichkeit, die generierten .cs manuell zu bearbeiten, um diese Klassen intern zu machen?

    
Mark Wright 16.09.2009, 21:18
quelle

1 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 diesem Artikel beschriebenen Techniken verwenden, um auf das XmlCodeExporter Klasse, 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 internal setzen.

Es kann sein, dass die Anstrengung, die erforderlich ist, um diese eine Warnung zu entfernen, mehr ist, als Sie möchten.

Eine weitere Möglichkeit zum Entfernen der Warnung besteht darin, den Code in einer Assembly zu generieren, für die die XML-Dokumente deaktiviert sind (nach allen, die Dokumente für den generierten Code benötigen?)

    
Blue Toque 16.09.2009, 21:30
quelle

Tags und Links