5

一部のデータが XML ファイルに格納されている winforms アプリケーションがあります。これらの XML ファイルを保存する場所は、ユーザーが構成でき、AppSettings に保存されます。すべてのレイヤーは個別のアセンブリです。DAL アセンブリから自分の設定にアクセスできますか?それとも、これを引数としてすべてのレイヤーに渡す必要がありますか?

DAL レイヤーから設定を読み取ろうとすると、別の問題が発生します

        Configuration config = ConfigurationManager.OpenExeConfiguration(
            System.Reflection.Assembly.GetEntryAssembly().Location);
        string dataStorageLocation = config.AppSettings["DataStorageLocation"];

config.AppSettings["DataStorageLocation"] はコンパイル エラーを返します: System.Configuration.ConfigurationElement.this[System.Configuration.ConfigurationProperty] is inaccessible due to its protection level. 何故ですか?

誰かが私を正しい軌道に乗せることができますか? ありがとう。

4

2 に答える 2

8

を使用する必要がありますconfig.AppSettings.Settings["DataStorageLocation"]。サンプルについては、MSDN のドキュメントを参照してください。

System.Configuration.ConfigurationManager.AppSettings[name]の方法として、ホスト アプリケーションの AppSettings にアクセスするために使用することもできます。たとえば、DAL アセンブリが IIS のサービス層でホストされている場合にも機能するため、これはおそらくあなたの手法よりも柔軟です。このように、ホスト アプリケーションの構成ファイルから構成情報に直接アクセスすることはまったく問題なく、一般的には構成情報をレイヤーを介して渡すよりも優れています。

于 2010-01-03T13:59:17.453 に答える
3

AppSettingsは、呼び出しプロセスによってロードされたすべてのアセンブリにアクセスできるため、ロードしたアセンブリで問題なくアクセスできます。

于 2010-01-03T16:27:07.573 に答える