108

WebConfigurationManagerとはどう違いConfigurationManagerますか?

いつどちらを使用する必要がありますか?

更新しました

を見ただけWebConfigurationManagerですが、何らかの理由で、(配列のように) のように接続文字列にアクセスできませんConfigurationManager。なぜMSがこのように作ったのか誰か教えてもらえますか? を使用して必要な接続文字列を取得するのは面倒なようですWebConfigurationManager

警告付きで再度更新!

プロジェクトに名前空間への参照が追加されていない場合、配列System.Configurationなどにアクセスしようとすると、Visual Studio でエラーが表示されます。WebConfigurationManager.ConnectionStrings

4

4 に答える 4

97

WebConfigurationMangerは、Webアプリケーション内で構成の継承を処理する方法を知っています。ご存知のように、1つのアプリケーションに複数のweb.configファイルが存在する可能性があります。1つはサイトのルートにあり、任意の数がサブディレクトリにあります。GetSection()メソッドにパスを渡して、オーバーライドされた構成を取得できます。

Reflectorを使用してWebConfigurationManagerを見ると、状況は明らかです。

public static object GetSection(string sectionName)
{
    ...
    return ConfigurationManager.GetSection(sectionName);
}

public static object GetSection(string sectionName, string path)
{
    ...
    return HttpConfigurationSystem.GetSection(sectionName, path);
}
于 2009-03-30T17:50:34.737 に答える
27

WebConfigurationManager は、ASP.NET アプリケーション専用に作成されています。

WebConfigurationManager は、Web アプリケーションに適用可能な構成ファイルをロードするための追加のメソッドを提供します。

ConfigurationManager は、「.exe」アプリケーションに適用可能な構成ファイルをロードする方法も提供します。

WebConfigurationManager を見て、ConfigurationManager ではできないことを代わりに使用できるかどうかを確認することをお勧めします。それ以外の場合は、ConfigurationManager を使用すると、Web とデスクトップ AP 間でコードをシームレスに使用することがはるかに簡単になります。

于 2009-03-30T17:22:48.330 に答える
3

接続文字列について何を意味するのかわかりません。

WebConfigurationManager.ConnectionStringsを呼び出すと、System.Configuration.ConnectionStringSettingsCollection が返されます。これは、 ConfigurationManager.ConnectionStringsを呼び出した場合と同じです。

それ以外の場合は、XOR が言うように、複数の階層 web.config を処理するように設計されており、アプリケーション内のフォルダーを移動するときに必要に応じてそれらを組み合わせます。

于 2009-03-30T19:52:58.547 に答える