2009-02-05 47 views
1

我有一個COM +服務器託管實現ServicedComponent的.Net組件。COM +服務器配置與自定義ConfigurationSection

COM +服務器需要訪問配置文件,其中定義了自定義配置節。

我可以用下面的代碼加載配置細:

ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap(); 
fileMap.ExeConfigFilename = @"%MY_FOLDER_WITH_ALL_DLLS%\MyComServer.dll.config"; 
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); 

// All is fine until the next line: 

MyCustomSettings customSettings = (MyCustomSettings)tempConfiguration1.GetSection("customSettings"); 

System.InvalidCastException:無法轉換類型 'System.Configuration.DefaultSection' 的目的爲類型 'MyProject.MyCustomSettings'

這裏是我聲明的配置文件中的自定義配置部分:

<configSections> 
    <section name="MyProject.MyCustomSettings" type="MyProject.MyCustomSettings, MyProject, Version=1.0.3322.1077, Culture=neutral, PublicKeyToken=176fc8b9840b0b09"/> 
</configSections> 

這種情況確實返回能源部一個DefaultSection對象因爲我期待着一個CustomSettings對象,所以它似乎沒什麼用處。

請注意MyProject是強命名的。

一個選項是在GAC中安裝MyProject.dll程序集,但由於組織原因,此解決方案不具吸引力。

還有其他建議嗎?

如何從DLLHost中運行的進程中加載​​給定程序集配置文件中的自定義配置節?

謝謝。

回答

0

我自己在這個問題上浪費了幾個小時。最後,我通過將< configSection>移動到< configuration>下面來解決它。所有這一次,我有其他配置元素< configSection>。

相關問題