2009-08-19 6 views
1

あなたはur DALとして動作するクラスライブラリプロジェクトがあり、それに接続文字列を持つApp.Configファイルがあります。その設定ファイル? Webアプリケーションプロジェクトのweb.configから値を取得し続けます。私はapp.Configを持っていますが、私のオブジェクトはweb.Configになります。

DALプロジェクトではLinqToSqlを使用しています。参照先のDALクラスライブラリプロジェクトのWebアプリケーションでDataContextオブジェクトをinstansiateするときに、app.Config connectionstringsを使用できるようにすることはできますか?このファイルを無視して、web.Config connectionstringsノードから接続文字列を取得しようとします。接続文字列は存在しません。

何か助けていただければ幸いです。同僚は、DALと組み込みリソースにapp.Configを作成することについて言及しました。それは良いアイデアのように聞こえますか?

+0

使用しているフォルダ構造とDLL/configの場所を表示できますか? – cjk

答えて

3

Webアプリケーションは常にweb.configファイルを使用するサンディエゴのおかげで、 〜CK。デスクトップアプリケーションは常にapp.configを使用します。

+0

これを上書きする必要がある場合は、構成設定をweb.configまたは手動で管理および展開できるXMLファイルに移動します。 –

1

どのように強制的に設定ファイルを使用できますか? Webアプリケーションプロジェクトのweb.configから値を取得し続けます。

できません。 System.Configurationクラスを使用すると、アクティブなアプリケーションの.configファイル(実行可能ファイルの場合はapp.config、asp.net Webサイトの場合はweb.config)から引き出されます。

ファイルの入出力を使用して(System.Configuration名前空間とは対照的に)設定を読み込み、適切な.configファイル(より一般的な選択肢)にDAL構成情報を入れてください。

0

私はわからないんだけど、それを見てみましょう:

using System.Configuration; 

ExeConfigurationFileMap Map = new ExeConfigurationFileMap(); 

Map.ExeConfigFilename = FileName; 

Configuration Conf = ConfigurationManager.OpenMappedExeConfiguration(Map, ConfigurationUserLevel.None); 

AppSettingsSection section = (AppSettingsSection)Conf.GetSection("???"); 
0

は、ここで私は*の.configファイルをどのように考えるかです。あなたのDALのメソッドを持っていると言う:

のdoSomething(のconnectString、SQLDIALECT、てBusinessObject)

のconnectStringとSQLDIALECTは、このメソッドを呼び出すたびに変化していないので、それらを取り除くことができていいだろうパラメータを取得し、他の手段で取得します。

このような理由から、* .configファイルは環境に固有のものではなく、アプリケーション固有のものでもあります。それはあなたのWebアプリケーションがそうだと思います。「Hey everybody、connectString = "..."とSqlDialect = "..."、すべてのメソッド呼び出しで、そうでないと言うまでです。

1つのアプリケーションでSQLにログインし、別のアプリケーションで別の資格情報を使用する(必要に応じて別のパーマネントを使用する)場合、DBAはどのアプリケーションが何をしているのかを把握できます彼/彼女が選ぶならば)。まあ、* .configファイルはこれを実現します。

あなたが実行しているアプリが*。configファイルを提供している理由です。だからDALのapp.configファイルからすべての内容を切り取り、Web.configファイルに貼り付けてから、App.configを削除してください。あなたはその後にうまくいくはずです。

関連する問題