2013-01-23 6 views
8

私の型がIDisposableを実装していても、Usingステートメントでエラーが発生するのはなぜですか?</p> <pre><code>using (TandAEntities dataContext = new TandAEntities()) { // Some code } </code></pre> <p>これは何のエラーを与えていないと正常に動作します:私は、コードを持っている私の<code>DataAccess</code>プロジェクトで

私のユニットテストプロジェクトでは、同じコードがありますが、コンパイラはエラーを返します。 usingステートメントで使用されるタイプは、私がF12を押して、定義を確認'System.IDisposable'

に暗黙的に変換しなければならず、それは確かにIDisposableを実装し、Disposeメソッドを持っていません。

おそらく参考文献がありませんか?

+0

コンパイルされていないユニットテストのコードを表示できますか? –

+1

http://stackoverflow.com/questions/6754021/linq-context-object-isnt-registering-as-a-type-of-system-idisposable-object –

答えて

12

リンク重複の可能性が最も高い回答 - using System.Data.Linq

その他のオプション:あなたはどこかに古いDLLを持っています(つまり、GACにインストールされています)。

GACを調べて、このタイプを使用しているがテストをコンパイルしてデバッグするだけで、コードを変更して調べるだけで、古いDLLを簡単に見つけることができない場合。このタイプのアセンブリが実際に使用されている場所については、[デバッグ] - > [Windows] - > [モジュール]を選択します。

+7

System.Data.Linqを使用してインクルードしましたが、私はEntityFrameworkへの参照を追加し、それが機能しました。 – Cloud9999Strife

+3

要点は、コンパイラが 'IDisposable'に変換できる基本クラスを見つけるためにすべてを検索できるように、必要なDLLをすべて追加することです。例えば、 'IDisposable'を実装する' DataContext'クラスは、EntityFramework dllに存在します。 –

+2

私の場合は、System.Data.Linq参照を追加した後、エラーがなくなります – etlds

関連する問題

 関連する問題