Конфигурационные файлы и расширения - PullRequest
1 голос
/ 08 февраля 2012

Мы используем .NET Extensions в нашей службе WCF, и это означает, что при запуске папка Extension будет проверяться на наличие dll-файлов, а если они есть, то они будут загружаться как расширения.

Проблемав том, что расширения могут иметь свой собственный файл конфигурации с конечными точками, но при запуске расширения из службы WCF мы будем находиться в домене приложения службы WCF, а это означает, что для определения конечных точек будет использоваться служба web.config службы WCF.

Да, я мог бы переместить конечные точки в web.config, но если я сделаю это, расширение будет более ограниченным, и я думаю, что это не мысль о расширениях.

Возможно, я также могу изменитьappdomain временно в расширении dll, но действительно ли это правильный путь?

1 Ответ

1 голос
/ 08 февраля 2012

Решение состоит в том, чтобы использовать следующий код:

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.

...