2016-11-29 20 views
0

私はclass library project(dll)MVCプロジェクトを持っています(私は.netフレームワークでASP.net Coreを使用しています)。 dllでMVCプロジェクトのWebConfigファイル内にあるconnectionstringをどのように読むことができますか?私はdllの中にあり、私はそれを読む必要がある、私はconnectionstringもハードコードされていない私は既にMVCプロジェクトのWebConfigの中にそれを持っている場合は、どのように私はそれを行うことができますか? 私は私のdllでこのコードを使用していますが、それは働いていない:DLLのWebConfigファイルから接続文字列を読み取る

var connectionString = ConfigurationManager.ConnectionStrings["MyConnectionStringName"].ConnectionString; 
+0

「動作しません」<=より具体的にしてください。あなたは例外がありますか?あなたはスペルを確認しましたか? 'null'が返されますか?何が起こっている。最後に、asp.netコアの接続文字列に関するこの記事を参照してください。https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-strings – Igor

+0

@Igor「タイプの例外」を取得しています。 System.NullReferenceException 'がProjectClasses.dllで発生しましたが、ユーザコードで処理されていませんでした。' – AlexGH

+0

'これは、 'ConfigurationManager.ConnectionStrings [" MyConnectionStringName "]'が 'null'を返していることを意味します。だから、私は 'web.config'の内容をチェックし、スペリング/ケーシングが接続文字列名と同じであることを確認します。それはあなたの質問にコンテンツを投稿している場合。 – Igor

答えて

1

はあなたではなく、直接web.configファイルにアクセスしようとするよりも、クラスライブラリからあなたのクラスをインスタンス化/使用引数としてでは接続文字列を渡しますクラスライブラリから。これはかなり一般的な方法であり、コードを維持する必要のある他の人が認識しやすくなります。

//in the MVC code somewhere 
string conStr = null; 
if(ConfigurationManager.ConnectionStrings["MyConnectionStringName"] != null) 
    conStr = ConfigurationManager.ConnectionStrings["MyConnectionStringName"].ConnectionString; 
else 
{ 
    //connection string not found 
} 
//instantiating class from the class library 
var myFoo = new Foo(conStr); 
関連する問題