我正在用 C# 编写一个类库 (IE BHO),目前正在处理我认为来自 REGASM 生成的注册表项的大量垃圾输出。
简短的版本是这样的:我只想向 IE(以及 COM 的其余部分)公开少数类(目前:一个类)。只有一个类设置了 ClassInterfaceAttribute 和 GUID,我可以测试该插件只需要该类的 COM 注册表项——然而,REGASM 为整个项目中的每个类生成 GUID 和注册表项。
这很烦人而且有点令人不安,因为我不希望我的类名出现在用户的注册表中,除非他们绝对必须在那里。
公平地说,许多其他类被标记为公共,因为我在同一解决方案中另一个项目的驱动程序应用程序中使用它们,以解决 IE 的调试黑洞......
总的来说,我对 COM 仍然很陌生(尤其是与 .Net 相关),我想知道隐藏我所有其他类以防止 regasm 的最佳方法是什么?或者,至少,当我没有为它们设置任何 COM 标志时,为什么这些类——即使它们被标记为公共——会出现?
谢谢!