我必须将dll调整为COM对象(类库中的一个主类)。 这个dll引用了其他dll。 当我使用COM的C#属性并注册dll时,我无法使用这个类,注册表在注册表中注册很多(我的类库中的公共类很少,我不想公开)他们作为com)。 它让我疯狂这个问题,有没有人知道C#中的com接口是否在参考dll中发生了变化(当我创建一个简单的类并且交互时它工作得很好,这就是为什么我认为它与引用dll有关)? 请帮帮我!!!
谢谢你提前!!!
答案 0 :(得分:1)
在该程序集中使用Attibutes。如果您不希望公共类作为COM接口可见
[ComVisible(false)]
然后有一些选项如何使其COM可见 其中之一: 创建一个具有属性的接口
[ComVisible(true)]
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
[Guid("new generated GUID")]
public interface ISample
{
void DoSomthing();
}
然后实现此接口
[Guid("new generated GUID")]
[ClassInterface(ClassInterfaceType.None)]
[ComSourceInterfaces(typeof(ISample))]
[ProgId("YourModule.YourClass")]
[ComVisible(true)]
public class YourClass : ISample