我有一個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中運行的進程中加載給定程序集配置文件中的自定義配置節?
謝謝。