Wie kann elegant verhindert werden, dass ein Webservice-Proxy für COM verfügbar gemacht wird?

Ich verwende eine C # -Assembly als In-Proc-COM-Server, der von einer nicht verwalteten C ++ - Anwendung verwendet wird. Die Assembly verwendet einen Webservice, der sich niemals ändert, sodass die Webservice-Proxy-Klassen niemals aktualisiert werden müssen. Aus diesem Grund werden die Proxy-Klassen einmal erstelltReference.cs Dateien werden einfach in das Repository gestellt und erst von dort kompiliert.

Das Problem ist, dass die Webservice-Proxy-Klassen standardmäßig öffentlich sind und daher für COM verfügbar sind. Dadurch wird die Typelib aufgeblasen und die Registrierung verschmutzt. Wenn Sie die Sichtbarkeit auf "Intern" ändern, wird die Assembly unterbrochen, sodass diese Entitäten öffentlich bleiben, jedoch nicht für COM verfügbar gemacht werden müssen.

Der blöde Weg ist, sich jeder öffentlichen Schnittstelle / Klasse im Internet zu nähernReference.cs Dateien und markieren Sie es mit

[System.Runtime.InteropServices.ComVisible(false)]

Danach ist es nicht mehr für COM verfügbar.

Gibt es einen besseren Weg?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage