COM对象C#的问题

时间:2010-07-08 09:46:38

标签: com c#-3.0

我必须将dll调整为COM对象(类库中的一个主类)。 这个dll引用了其他dll。 当我使用COM的C#属性并注册dll时,我无法使用这个类,注册表在注册表中注册很多(我的类库中的公共类很少,我不想公开)他们作为com)。 它让我疯狂这个问题,有没有人知道C#中的com接口是否在参考dll中发生了变化(当我创建一个简单的类并且交互时它工作得很好,这就是为什么我认为它与引用dll有关)? 请帮帮我!!!

谢谢你提前!!!

1 个答案:

答案 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