2007年02月27日

ConfigurationManagerクラスのOpenExeConfigurationでの間違い

  
C#で、デフォルトの exe.config とは異なる構成ファイルをオープンしようと思い、

System.Configuration.Configuration config = 
ConfigurationManager.OpenExeConfiguration(@"C:\Gushwell\sample.dll.config");

target = config.GetSection(sectionName) as MySection;

と書いてみたら、target が nullになってしまう。
configインスタンスは生成されているのに、おかしいなと思って、調べてみたら、config.FilePath プロパティが、@"C:\Gushwell\sample.dll.config.config" だった。

なんで、勝手に .config を付加するんだ! と思ったが、まあ、名前が、OpenExeConfiguration だから、しかたないか。

これは、単に、
@"C:\Gushwell\sample.dll"
とすればいいみたいだ。

ちなみに、おぎわら さんのページ
http://blogs.wankuma.com/ogiogi/archive/2006/07/28/34042.aspx
でも、おなじようなことが書いてあった...

ただ、現象的に異なるのは、おぎわらさんのページによると、
ConfigurationManager.OpenExeConfiguration()
の戻り値が null になっているということ。これは、おぎわらさんの勘違いだと思うけど...


 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/50718865