2012-04-16 22 views
2

C#クラスlibary - targetting .NET2フレームワーク。C#での公開インタフェースの実装に関する問題

小さなクラスでパブリックインターフェイス(2番目の参照アセンブリから公開)を実装しようとしています。 1は罰金ですが、いくつかの理由で、私は一つ一つのために文句コンパイラなく、それらの他の二つを実装することはできません:私のクラスは「InterFaceName.MethodNameを実装していません」

  • インタフェースはわずか3つの方法があります
  • "明示的なインタフェース宣言のInterFaceName.MethodNameはインタフェースのメンバではありません"。

コンパイルする方法と他の2つの方法の唯一の違いは、問題のメソッドにそれぞれOffice Interop(Word)型のパラメーターがあることです。その他のパラメータは、boolまたは他のパブリックインターフェイスのメンバーです。

私のクラス定義はここに追加することができますが、私は他のアセンブリ(それは商品です)の "所有者"ではないので、言い換えをする必要があります。彼らは私に「暴露」していると感じるでしょう...

これは私が知っている漠然としたものですが、私は誰かがこの種のエラーに遭遇することを望んでいます。

ありがとうございます。

+0

実装しようとしているインタフェースの定義を投稿できますか? – ChrisF

+0

実際のコードが機密扱いの場合は、問題の再現を最小限にして投稿してください。 –

+0

私はあなたが問題なくインターフェイスを公開できると思います。コードを見ることなく、ソリューションについて考えるのがずっと難しい。 – rcdmk

答えて

3

これは、参照されているアセンブリが異なるバージョンのOffice Interopアセンブリに対して構築されている場合によく発生します。

結果として、 "MethodName"で宣言されたパラメータが、参照されているアセンブリのインターフェイスと一致するように見える場合でも、アセンブリのバージョンが異なるため、メソッド宣言は参照アセンブリからの

interopアセンブリとまったく同じバージョンを使用していることを再度確認してください。

+0

それはそれでした!提案をありがとうPete - 今は問題なくコンパイルされます。 –

関連する問題