Como elegantemente evitar que um proxy de serviço Web seja exposto ao COM?

Eu tenho um assembly c # que eu uso como um servidor COM in-proc consumido por um aplicativo C ++ não gerenciado. O assembly consome um webservice que nunca será alterado, portanto, não há necessidade de atualizar as classes do proxy de serviço da web. É por isso que as classes proxy são criadas uma vez eReference.cs os arquivos são simplesmente colocados no repositório e somente compilados a partir daí.

O problema é que, por padrão, as classes de proxy de serviço da web são públicas e, portanto, expostas a COM. Isso infla o typelib e polui o registro. Alterar a visibilidade para a quebra interna da montagem, para que essas entidades precisem permanecer públicas, mas não precisam ser expostas ao COM.

A maneira estúpida é abordar todas as interfaces / classes públicas noReference.cs arquivos e marcá-lo com

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

Depois disso, não está mais exposto ao COM.

Existe uma maneira melhor?

questionAnswers(1)

yourAnswerToTheQuestion