Я всегда отмечал свои сборки .NET как видимые для COM с [assembly: ComVisible(true)]
, думая, что я никогда не знаю, когда кому-то может потребоваться назвать их из COM. Я также начал использовать FxCop и начал видеть это предупреждение из анализа кода:
CA1017: Microsoft.Design: поскольку "MyLibrary.dll" раскрывает внешне видимые типы, отметьте его с помощью ComVisible (false) на уровне сборки и затем отметьте все типы внутри сборки, которые должны быть открыты COM-клиентам с помощью ComVisible (true )
Есть ли какая-то причина, по которой вы просто не хотите, чтобы все ваши публичные типы подвергались воздействию COM? Я предполагаю, что есть, но я не могу представить, в чем причина. Во всяком случае, это кажется явно неудобным.