¿Cómo evitar de manera elegante que un proxy de servicio web sea expuesto a COM?

Tengo un ensamblado de C # que uso como servidor COM en proceso consumido por una aplicación de C ++ no administrada. El ensamblaje consume un servicio web que nunca cambiará, por lo que no es necesario actualizar las clases de proxy del servicio web. Es por eso que las clases proxy se crean una vez yReference.cs los archivos simplemente se colocan en el repositorio y solo se compilan desde allí.

El problema es que, de forma predeterminada, las clases de proxy de servicio web son públicas y, por lo tanto, están expuestas a COM. Esto infla el typelib y contamina el registro. Cambiar la visibilidad para romper el ensamblaje interno, por lo que esas entidades deben seguir siendo públicas, pero no deben estar expuestas a COM.

La forma tonta es acercarse a cada interfaz / clase pública en elReference.cs archivos y marcarlo con

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

Después de eso ya no está expuesto a COM.

¿Hay alguna manera mejor?

Respuestas a la pregunta(1)

Su respuesta a la pregunta