2012-09-18 41 views
14

クラスEmployeeでは、うまくいくいくつかのメソッドがあります。私はF12を打ったときに今、私は'クラス'に 'メソッド'の定義が含まれていません

public void ExampleMethod() 
{   
} 

次に例えば、新しいメソッドを追加したい、私は

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

ExampleMethodドットの後に表示されたIntelliSenseの中に存在している、それを呼び出す、それはまた、その方法に私をリダイレクトしますが、 'Employee'には 'ExampleMethod'の定義が含まれておらず、 'Employee'タイプの最初の引数を受け入れる拡張メソッド 'ExampleMethod'が見つかりませんでした(usingディレクティブまたはアセンブリ参照?)

私はドン他のすべての以前のメソッドが正常に動作するため、なぜこのエラーが発生するのか分かりません。どうしたの?

+0

他のアセンブリではこのクラスですか? – Tigran

+2

Rebuild Allヘルプはありますか? – devio

+2

あなたは完全な従業員クラスを投稿できますか?すべてを再構築してください。 – KyorCode

答えて

19

三つの可能性があります:あなたはそれを使用することカント古いDLLを参照している場合は

1)。だからあなたは新しいDLLを参照している

2)別の名前空間でそれを使用していて、他の名前空間のDLLを使用しようとしている場合は、このメソッドを参照しないでください。

3)あなたは、私は番目のオプションは、あなたのための原因かもしれないと思うプロジェクト

を再構築する必要があるかもしれません。あなたの正確な問題を理解するために、より多くの情報を投稿してください。

+2

4)OPがある種のクラスのあいまいさと混同され、別のassemply/projectの不正なEmployeeクラスを参照している可能性がありますか? +1。 –

+0

+1 - > Entity Frameworkデータベーステーブルにクラスと同じ名前を付けないでください。Doh。 – teynon

+0

私はちょうどきれいにして再構築する必要があった – KthProg

5

はあなたの問題

namespace.Employee employee = new namespace.Employee(); 
employee.ExampleMethod(); 
+0

私は手動ですべてのクラス呼び出しの前に名前空間を追加しました。これは私のために働いた。 –

2

私は同じ問題を抱えていたかもしれないresovle名前空間名を持つクラスを作成します。参照していたプロジェクトがビルドされなかったことがわかります。 Visual Studioのビルド構成マネージャーにアクセスして参照プロジェクトを有効にすると、問題は解決しました。

0

コードを共有する複数のプロジェクトを持つソリューションで作業する場合、同じ問題が発生しました。 2番目のプロジェクトのフォルダ内のDLLを更新するのを忘れていました。

私の提案は、エラーリストウィンドウの「プロジェクト」列のようにして、プロジェクトが正しいDLLを使用していることを確認することです。

よろしく ドミニクRooijackers

+0

プロジェクトのコラムに関するご意見ありがとうございます。 ASP.NETでは、Global.asaxは他のコードとは異なるプロジェクトであると考えられますか?したがって、Global.asaxから内部/友人のメソッドを呼び出すことはできません。とてもうるさい。 – user169771

0

私は同じ問題を抱えていました。私は、PropertiesフォルダのAssemblyInfo.csにアセンブリのバージョンを変更しました。しかし、私はこの問題がなぜ起こったのか分かりません。おそらく、コンパイラはこのdllが新しいものであることを理解しておらず、単にAssemblyのバージョンを変更するだけです。

0

今日、あなたが説明したのとまったく同じ症状の問題が発生しました。すべてのファイルを閉じてVSを再起動すると、のファイルが解決エクスプローラから消えてになりました。

解決策エクスプローラで現在のプロジェクトを選択すると、小さなアイコンShow all filesがトップバーに表示されます。ファイルを右クリックしてInclude In Projectを選択すると、そのことが実行されます。

Credit

1

私はこの問題に遭遇しました。この問題は、ここに投稿された他の回答とは異なるように見えるので、誰かを助ける場合にはそれを言及します。

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

0

他のプロジェクトのクラスを使用している場合は、プロジェクトを再ビルドしてDLLを作成する必要があります。 ビルド - >コンフィグレーションマネージャVisual Studioで、そのプロジェクトの "ビルド"がチェックされていることを確認してください。したがって、参照プロジェクトはdllを再構築して更新します。

関連する問題