Избегайте регистрации классов в обслуживаемом компоненте COM+
У меня есть COM+ DLL
который содержит некоторые классы, которые являются первичными и другими вспомогательными классами, не используемыми публичными методами. При регистрации DLL с помощью regsvcs
Командой все классы добавляются в реестр и в файл TLB.
Есть какой-нибудь атрибут или другое решение, чтобы избежать добавления вспомогательных классов в реестр?
я нашел ComVisibleAttribute
атрибут, но, похоже, это связано только с наследованием.
1 ответ
ComVisibleAttribute является правильным атрибутом для использования. В AssemblyInfo.cs вы можете использовать
[assembly: ComVisible(false)]
так что все не является COM видимым по умолчанию, а затем для классов, которые вы хотите видеть, предшествуйте им
[ComVisible(true)]
public class MyClass
Или переверните его, если хотите, чтобы большинство типов были видимыми для COM, а некоторые - невидимыми. Я предпочитаю все невидимое по умолчанию, так как это дает мне больше контроля над тем, что подвергается воздействию COM.