C# 类型库C中的Blank方法#

C# 类型库C中的Blank方法#,c#,com,tlbimp,C#,Com,Tlbimp,我有一个.exe程序集,其类如下 [Guid("2D9EBA5F-7E4A-418B-B151-4E703AEDF396")] public interface MyInterface { int MyMethod(); } [GuidAttribute("D26278EA-A7D0-4580-A48F-353D1E455E50"), ProgIdAttribute("My_prog"), ComVisible(true), Serializable] public class MyInt

我有一个.exe程序集,其类如下

[Guid("2D9EBA5F-7E4A-418B-B151-4E703AEDF396")]
public interface MyInterface
{
   int MyMethod();
}
[GuidAttribute("D26278EA-A7D0-4580-A48F-353D1E455E50"),
ProgIdAttribute("My_prog"), ComVisible(true), Serializable]
public class MyInterface: MyClass
{
   public int MyMethod()
   {
     return 1;
   }
}
我把它注册为

regasm 1.exe /tlb 1.tlb
我有两个问题:

1) 我用一个对象浏览器“COM”选项卡打开它。我可以看到我的程序集,我可以看到那里的一个对象,但是我看不到这个类中的任何方法。怎么了

2) 我试图从第二个项目AddReference->COM(VS2010)中引用它。 我得到一个错误:

无法添加对“assemblyname”的引用

ActiveX类型库“path\1.tlb”是从.NET程序集导出的,无法添加为引用

改为添加对.NET的引用“


是的,我读过这个问题。但我不想直接引用程序集,我想通过COM访问它!我应该怎么做才能使程序集通过COM可引用?

为什么你的接口不可ComVisible?@Paul Jan使用ComVisible接口时,我仍然看不到类中的方法,因此它不会改变任何东西。问题中有几个奇怪的输入错误,很难假设任何情况。但不是,VisualStudio坚持要始终使用普通的.NET程序集引用,而不是.NET程序集的COM引用。使用COM毫无意义。正如Hans所说,为什么接口与类同名?我本以为这会导致编译错误。