2012-03-06 6 views
0

を読み、私はサードパーティの設定セクションがあります。web.configファイルでは、サードパーティのconfigセクション

<configuration> 
    <configSections> 
    <sectionGroup name="TheProduct"> 
     <section name="TheSection" type="TheCompany.TheProduct.TheSectionConfigurationHandler, TheCompany.TheProduct, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b1e9bee111e9429c" /> 
    </sectionGroup> 
    </configSections> 

    <TheProduct> 
    <TheSection somevalue="true" /> 
    </TheProduct> 
</configuration> 

を、私は別のアプリケーションから、このセクションの値を読みたいが、私がしようとすると、セクションを見つける、私はいつもnullを取得します。ここで

は私のコードです:

var config = ConfigurationManager.OpenExeConfiguration(
    @"C:\inetpub\wwwroot\TheProduct\web.config" 
    ); 
var settings = config.GetSection("TheProduct/TheSection"); // always null 

configセクションを取得するための正しい方法は何ですか?

[編集]同じセク​​ションを定義し、呼び出し元のアプリは、私が行うことができる場合:

var settings = ConfigurationManager.GetSection("TheProduct/TheSection"); 

をし、それが働いています。 Mybe私は正しい方法でweb.configファイルを開いていませんか?

+0

アプリケーションに「TheCompany.TheProduct、Version = 1.0.0.0、Culture = neutral、PublicKeyToken = b1e9bee111e9429c」という参照がありますか? –

+0

いいえ...実際には、セクションハンドラはサードパーティライブラリの内部にあります。私は反射を使って値を読み取ることにしました。 –

+0

編集:サードパーティ製のライブラリへの参照があります...自分で型をインスタンス化できません –

答えて

0

構成マネージャーを使用するには、アプリケーションが実際に強く型付けされた構成オブジェクトをインスタンス化できることが必要です。定義しているアセンブリへの参照を追加できない場合は、XML apiのいずれか(System.XmlまたはSystem.Linq.Xmlのいずれか)を使用して手動で読み取ることが唯一の選択です。この場合は、構成マネージャーをまったく使用しません。

+0

リモートアプリケーションのセクションを取得できませんが、現在のアプリケーションのセクションを取得できます。私は値を抽出するのが問題ではないと思うが、セクションを読む –

関連する問題