Избегайте регистрации классов в обслуживаемом компоненте COM+

У меня есть COM+ DLL который содержит некоторые классы, которые являются первичными и другими вспомогательными классами, не используемыми публичными методами. При регистрации DLL с помощью regsvcs Командой все классы добавляются в реестр и в файл TLB.

Есть какой-нибудь атрибут или другое решение, чтобы избежать добавления вспомогательных классов в реестр?

я нашел ComVisibleAttribute атрибут, но, похоже, это связано только с наследованием.

1 ответ

Решение

ComVisibleAttribute является правильным атрибутом для использования. В AssemblyInfo.cs вы можете использовать

[assembly: ComVisible(false)]

так что все не является COM видимым по умолчанию, а затем для классов, которые вы хотите видеть, предшествуйте им

[ComVisible(true)]
public class MyClass

Или переверните его, если хотите, чтобы большинство типов были видимыми для COM, а некоторые - невидимыми. Я предпочитаю все невидимое по умолчанию, так как это дает мне больше контроля над тем, что подвергается воздействию COM.

Другие вопросы по тегам