19

クラスEmployeeには、うまく機能するいくつかのメソッドがあります。たとえば、新しいメソッドを追加したいと思いました

public void ExampleMethod()
{         
}

それから私はそれを呼びます

Employee employee = new Employee();
employee.ExampleMethod();

ExampleMethod はドットの後に表示される IntelliSense に存在し、F12 を押すとそのメソッドにもリダイレクトされますが、プロジェクトの開始中にエラーが発生しました:「従業員」には「ExampleMethod」の定義が含まれておらず、拡張メソッド「ExampleMethod」もありません' 型 'Employee' の最初の引数を受け入れることが見つかりました (using ディレクティブまたはアセンブリ参照がありませんか?)

他のすべての以前の方法は正常に機能するため、このエラーが発生する理由はわかりません。どうしたの?

4

10 に答える 10

26

次の 3 つの可能性があります。

1) 古い D​​LL を参照している場合は、使用できません。したがって、新しいDLLを参照しています

2) 別の名前空間で使用していて、別の名前空間の dll を使用しようとしている場合、このメソッドは参照されません。

3) プロジェクトの再構築が必要になる場合があります

3番目のオプションが原因である可能性があると思います。あなたの問題を正確に理解するために、より多くの情報を投稿してください。

于 2012-09-18T10:31:25.693 に答える
6

名前空間名でクラスを作成すると、問題が解決する場合があります

namespace.Employee employee = new namespace.Employee(); 
employee.ExampleMethod();
于 2012-09-18T10:31:58.533 に答える
3

私も同じ問題を抱えていました。私が参照していたプロジェクトがビルドされなかったことが判明しました。Visual Studio のビルド構成マネージャーに移動し、参照プロジェクトを有効にすると、問題は解決しました。

于 2014-01-21T12:47:07.093 に答える
1

私も同じ問題を抱えていました。AssemblyInfo.csProperties フォルダーで Assembly のバージョンを変更しました。しかし、なぜこの問題が発生したのか、私にはわかりません。おそらく、コンパイラはこれが新しいことを理解せずdll、Assembly のバージョンを変更しただけです。

于 2015-05-04T16:48:19.077 に答える
1

この問題に遭遇しました。この問題は、ここに投稿された他の回答とは異なるように思われるため、誰かに役立つ場合に備えて言及します。

私の場合、1 つのアセンブリ ("A") で定義された内部基本クラス、2 番目のアセンブリ ("B") で定義された内部派生クラス、およびテスト アセンブリ ("TEST") があります。アセンブリ "B" で定義された内部を を使用して "TEST" に公開しましたInternalsVisibleToAttributeが、アセンブリ "A" については公開しませんでした。これにより、上で述べたエラーが発生し、それ以上の問題は示されませんでした。を使用InternalsVisibleToAttributeしてアセンブリ「A」を「TEST」に公開すると、問題が解決しました。

于 2016-07-15T18:13:19.027 に答える
0

コードを共有する複数のプロジェクトを含むソリューションで作業しているときに、同じ問題が発生しました。2番目のプロジェクトのフォルダーにあるDLLを更新するのを忘れていたことが判明しました。

私の提案は、[エラー リスト] ウィンドウの [プロジェクト] 列をよく見て、プロジェクトも正しい DLL を使用していることを確認することです。

于 2014-02-27T10:08:25.003 に答える