C# 在C中实现公共接口的问题#

C# 在C中实现公共接口的问题#,c#,interface,C#,Interface,C#类库-targeting.NET2框架 我试图在一个小类中实现一个公共接口(从第二个引用的程序集公开)。接口只有3个方法:一个很好,但由于某些原因,如果编译器不抱怨其中的每一个,我就无法实现另外两个: 我的类“未实现InterFaceName.MethodName” “显式接口声明中的InterFaceName.MethodName不是接口的成员” 编译的一种方法与其他两种方法之间的唯一区别在于,问题方法都有一个参数,即Office互操作(Word)类型。其他参数是bool或其他公共接口

C#类库-targeting.NET2框架

我试图在一个小类中实现一个公共接口(从第二个引用的程序集公开)。接口只有3个方法:一个很好,但由于某些原因,如果编译器不抱怨其中的每一个,我就无法实现另外两个:

  • 我的类“未实现InterFaceName.MethodName”
  • “显式接口声明中的InterFaceName.MethodName不是接口的成员”
编译的一种方法与其他两种方法之间的唯一区别在于,问题方法都有一个参数,即Office互操作(Word)类型。其他参数是bool或其他公共接口的成员

如果有帮助的话,我可以在这里添加我的类定义,但我需要做一些解释,因为我不是另一个程序集(它是一个商业产品)的“所有者”,我不确定他们对我“公开”它会有什么感觉

我知道这有点模糊,但我希望以前有人遇到过这种错误


感谢您的指点。

如果引用的程序集是根据不同版本的Office Interop程序集生成的,则通常会发生这种情况

因此,即使为“MethodName”声明的参数看起来明显与引用程序集的接口匹配,但由于程序集版本不同,因此方法声明实际上与引用程序集的declaration不匹配


仔细检查您使用的是完全相同版本的互操作程序集。

能否发布您尝试实现的接口的定义。如果实际代码是敏感的,请创建问题的最小复制并发布。我认为您可以毫无问题地公开接口。没有看到代码就很难想出解决方案。您是否尝试过反编译定义接口的程序集?这样做可能会得到一些答案和/或线索。@Paul-我用Reflector查看了引用程序集中的接口定义:其中没有突出的东西(至少对我来说)。就是这样!谢谢你的建议皮特-现在编译没有问题。