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?