2012-04-16 61 views
2

C#class libary - 針對.NET2框架。在C#中實現公共接口的問題#

我想在一個小類中實現一個公共接口(暴露於第二個引用的程序集)。該接口只有3種方法:一種是好的,但由於某種原因,我無法實現他們的另外兩個沒有抱怨編譯器爲每一個:

  • 我的課「未實現InterFaceName.MethodName」
  • 「顯式接口聲明中的InterFaceName.MethodName不是接口的成員」。

編譯的方法和其他兩個方法之間唯一的區別是問題方法每個都有一個Office Interop(Word)類型的參數。其他參數是bool或其他公共接口的成員。

我可以在這裏添加我的類定義,如果它有幫助,但我需要做一些解釋,因爲我不是另一個程序集的「所有者」(這是一個商業產品),我不知道如何他們會覺得我「暴露」它...

這是一種模糊的我知道,但我希望有人遇到這種錯誤之前。

感謝您的指點。

+0

您可以發佈您嘗試實施的界面的定義。 – ChrisF 2012-04-16 22:00:24

+0

如果實際代碼很敏感,請創建問題的最低限度再現併發布。 – 2012-04-16 22:01:39

+0

我認爲你可以暴露接口沒有問題。如果沒有看到代碼,就很難想出解決方案。 – rcdmk 2012-04-16 22:02:01

回答

3

如果所引用的程序集是針對不同版本的Office Interop程序集構建的,則經常會發生這種情況。因此,即使明顯聲明爲「MethodName」聲明的參數可能看起來與來自引用程序集的接口相匹配,但由於程序集版本不同,所以方法聲明實際上並不匹配引用程序集的decleration。

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

+0

就是這樣!感謝Pete的建議 - 現在編譯時沒有問題。 – 2012-04-16 22:16:47