配置文件和扩展

时间:2012-02-08 11:25:07

标签: .net configuration appdomain

我们在WCF服务中使用.NET Extensions,这意味着在启动时将检查Extension文件夹是否有dll文件,如果有,则将这些文件作为扩展名加载。

问题是extes可能有自己的配置文件和端点,但是当从WCF服务中运行扩展时,我们将在WCF服务appdomain中,这意味着将使用WCF服务web.config来定位终点。

是的我可以将端点移动到web.config但是如果我这样做,那么扩展将更加严格,这不是我认为的扩展的想法。

我可能也会在扩展程序dll中临时更改appdomain,但这真的是正确的方法吗?

1 个答案:

答案 0 :(得分:1)

解决方案是使用以下代码:

string path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);

            ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap() { ExeConfigFilename = path + @"\MyExtension.dll.config" };
            //ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap() { ExeConfigFilename = path + @"\unittesting.dll.config" };


            Configuration configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);

            ConfigurationChannelFactory<MyExtension.MyExtentionManService.GetObjectResponderInterface> factory = new ConfigurationChannelFactory<GetObjectResponderInterface>("GetObjectResponderPort", configuration, null);

这是.NET 4.0中的新功能。