System.Data.SQLiteを参照するC#ライブラリと、ライブラリを使用する実行可能ファイル(2番目のプロジェクト)があります。ライブラリでVisual Studio 2010での参照転送(ライブラリから実行可能ファイルへ)
、私はSystem.Data.SQLiteでクラスを参照する機能(具体的にSQLiteDataReader
クラス)を持っている:
public static IEnumerable<T> SQLiteFetch<T>(Func<SQLiteDataReader, T> formator, string connectionString, string query)
ライブラリはこの関数を呼び出して実行可能ファイルを適切にコンパイルしますが、ありません。
これはビルド時にエラーとして表示されます。「アセンブリ 'System.Data.SQLite'」への参照を追加する必要があります。私はそれがIEnumerableのためだが、なぜ私の図書館で参照が転送されていないのですか?実際に実行可能ファイルにSystem.Data.SQLiteへの参照を追加する必要がありますか?
あなたは正しいので+1しますが、サードパーティライブラリをラッピングすることには利点があります。アプリケーションで使用するライブラリ(特に外向き)を提供する場合は、ライブラリの実装の詳細をユーザーが気にする必要はありません。この場合、参照先のライブラリを抽象化し、ラッパーを介してシステムへのアクセスを制御する方がよいでしょう。私は同意します、これは必ずしも必要ではありませんが、あなたがこれをしたいと思っている決定的な時があります。 –