COM对象C的问题#

COM对象C的问题#,com,c#-3.0,Com,C# 3.0,我必须将dll调整为COM对象(类库中的一个主类)。 此dll引用了其他dll。 当我为COM使用C#属性并注册dll时,我无法使用这个类,注册在注册表中注册了很多混乱的东西(我的类库中很少有公共类,我不想将它们作为COM公开)。 这个问题让我抓狂,有人知道C#中的com接口是否会强制更改引用DLL(当我创建一个简单的类并进行交互时,它工作得很好,这就是为什么我认为它与引用DLL相关)? 请帮帮我 谢谢是进步 在该集合中使用Attibutes。如果不希望公共类作为COM接口可见 [ComVisi

我必须将dll调整为COM对象(类库中的一个主类)。 此dll引用了其他dll。 当我为COM使用C#属性并注册dll时,我无法使用这个类,注册在注册表中注册了很多混乱的东西(我的类库中很少有公共类,我不想将它们作为COM公开)。 这个问题让我抓狂,有人知道C#中的com接口是否会强制更改引用DLL(当我创建一个简单的类并进行交互时,它工作得很好,这就是为什么我认为它与引用DLL相关)? 请帮帮我


谢谢是进步

在该集合中使用Attibutes。如果不希望公共类作为COM接口可见

[ComVisible(false)]
然后有一些选项如何使其可见 其中一项: 使用属性创建接口

 [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

但是我想作为com接口显示的类(我将其设置为true)在注册表中根本不存在!!您确定引用的DLL不需要任何更改吗?我有一个接口(ISample)和静态类工厂(static class SampleFactory),它不实现ISample接口,只有返回ISample实例的Create函数。我想将这些类公开为com可见。可能吗?事实上,这是行不通的:(