これを試して:
ConfigurationManagerステートメントがある場所にブレークポイントを設定し、[イミディエイト出力]ウィンドウで次の手順を実行します
((ConfigurationSection) ConfigurationManager.GetSection("connectionStrings")).ElementInformation
。私のマシンは、以下に示すように、ソース: "C:\ Users \ John \ Documents \ Visual Studio 2008 \ Projects \ StackOverflowCode \ WebApplication1\web.config"を報告します。
注:以下は、私のものがASP.NETweb.configにアクセスしていることも示しています。
{System.Configuration.ElementInformation}
Errors: {System.Configuration.ConfigurationException[0]}
IsCollection: true
IsLocked: false
IsPresent: true
LineNumber: 17
Properties: {System.Configuration.PropertyInformationCollection}
Source: "C:\\Users\\John\\Documents\\Visual Studio 2008\\Projects\\StackOverflowCode\\WebApplication1\\web.config"
Type: {Name = "ConnectionStringsSection" FullName = "System.Configuration.ConnectionStringsSection"}
Validator: {System.Configuration.DefaultValidator}
そして、実行するConfigurationManager.ConnectionStrings.ElementInformation
と、Webアプリに適したSource:nullが表示されます。
構成ソースパスに対して何を取得しますか?
即時の仮定
ConfigurationManager.ConnectionStrings["connectionString"];
Webアプリケーションのルートweb.configと必ずしも同じではない構成の場所を探す場合があります。おそらくそれはWindowsディレクトリを探しています(例えば、別の場所やmachine.configを探しています)。しかし、これに適したテストを見つけようとしています。
各マネージャーの意図
システム構成。ConfigurationManagerは、.NET構成XML形式にアクセスできます。つまり、次の両方を読み取ります。
- Web構成(つまり、ASP.NETのweb.configファイル)
- および非Web構成(例:app.configファイル-スタンドアロンコンソールアプリ、Windowsアプリなど)
構成のタイプに共通する側面を表現します。これは、汎用の構成マネージャーです。(ただし、両方のタイプの構成を確認できるこの機能にもかかわらず、次に説明するように、WebマネージャーはWeb構成に専念しているため、アプリ構成に使用する必要があります...)
System.Web.Configuration。WebConfigurationManagerはほとんど同じことを行いますが、構成マネージャーの「Web化」バージョンであり、構成のASP.NET Web固有の側面(ASP.NETのweb.configファイルなど)へのアクセスを提供します。
類似点
ConfigurationManager。*とWebConfigurationManager。*の間のメンバーの類似点を参照してください
たとえば、両方のマネージャーがAppSettings
プロパティとプロパティにアクセスできConnectionStrings
ます。実際、これらの設定は両方とも両方の種類の構成に共通であり、XMLドキュメントの同じレベルにあります。
したがって、多くの類似点があります
行動の違い
構成へのアクセス:ConfigurationManagerには、EXECアプリに関連するスタンドアロンアプリ構成(つまり、Myprogram.EXEのApp.config)を開くメソッドがありますが、WebConfigurationManagerには、WebサイトのWebアプリケーションルートディレクトリに関連するASP.NETWeb構成を開くメソッドがあります。
これが基本的なapp.configです(たとえば、 ConfigurationManagerによってディスクフォルダーから「C:\ winapp \ app.config」を介して開かれます)
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings/>
<connectionStrings/>
</configuration>
そして、これが基本的なweb.configです(たとえば、 WebConfigurationManagerによってWebサイトのルートを意味する「〜」を介して開かれます)
<?xml version="1.0"?>
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<!-- special web settings -->
</system.web>
</configuration>
類似点に注意してください。また、Web構成にはsystem.web
ASP.NET用の追加要素があることに注意してください。
これらのマネージャーは、異なるアセンブリに配置されています。
- ConfigurationManager:System.Configuration.dll
- WebConfigurationManager:System.Web.dll