2

アプリケーション用のカスタム .NET アドインがあり、アドインの構成ファイル用の configSections を作成しようとしています。問題は、OpenMapperExeConfiguration/OpenExeConfiguration を使用して構成をロードする場合、そのセクションを読むことができないことです。

ここに私の設定ファイル(MyTest.dll.config)があります

<configuration>
  <configSections>
    <section name="test" type="MyTest, Test.ConfigRead"/>
    </configSections>
    <test>
            ..Stuff here
        </test>
    <appSettings>
        <add key="uri" value="www.cnn.com"/>
    </appSettings>
</configuration>

これは、テスト configSection にアクセスするための私のコード サンプルです。

ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();  
fileMap.ExeConfigFilename = Assembly.GetExecutingAssembly().Location + "config";    
Configuration applicationConfig = ConfigurationManager.OpenMappedExeConfiguration(fileMap,ConfigurationUserLevel.None);
//Using OpenExeConfiguration doesnt help either.
//Configuration applicationConfig = ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly().Location);
//Accessing test section
applicationConfig.GetSection("test");

//Accessing AppSettings works fine.
AppSettingsSection appSettings = (AppSettingsSection)applicationConfig.GetSection("appSettings");
appSettings.Settings["uri"].Value;

示されているように、appsettings の値は問題なく読み取ることができます。メイン アプリケーションの構成ファイル以外の構成に configSections を含めることは可能ですか?

4

3 に答える 3

0

構成設定は、アプリケーション (.EXE の場合はアプリケーションのルート、Web アプリケーションの場合は Web ルートにある app.config) およびマシン ([システム ルート]\Microsoft.NET\Framework[CLR バージョン]\CONFIG にある machine.config) レベルで適用されます。 .

使用される唯一の他の構成ファイルは、アセンブリのバージョン管理ポリシーを作成するために使用され、AL ツールを使用してアセンブリにリンクされるポリシー構成ファイルです。これは明らかにやりたくないことです。

アドインの構成セクションを現在のアプリケーションの構成セクションにマージして、アプリ レベルの構成ファイルを 1 つ作成するか、machine.config ファイルに配置してみてください。

于 2009-01-15T13:04:54.540 に答える
0

「.」がありませんか デリミタ?

fileMap.ExeConfigFilename = Assembly.GetExecutingAssembly().Location + "config"; 

「.」を追加します。

fileMap.ExeConfigFilename = Assembly.GetExecutingAssembly().Location + ".config"; 
于 2009-08-28T02:23:58.057 に答える