Загрузка внешних переменных web.config при вызове метода во внешней сборке - PullRequest
0 голосов
/ 18 апреля 2011

Я использую отражение для вызова метода во внешней сборке.Внешний класс / метод находится в службе данных WCF.

Служба данных WCF использует информацию, загруженную из пользовательского раздела конфигурации в web.config,

 <configSections>
  <section name="myCustomSection" type="MyWcfService.MyCustomSection, MyWcfService" />
 </configSections>

Загрузка переменных конфигурации работает нормально в службе wcf, но не при попытке вызвать ееметоды через отражение через отдельное приложение.Я попытался поместить информацию о конфигурации в локальный app.config, но я получаю ту же ошибку.

Это код в локальном приложении:

 Assembly assembly = Assembly.LoadFile
            ("C:\\MyProject\\MyWcfService.dll");

        Type[] t = assembly.GetTypes();

        foreach (var v in t)
        {
            if (v.Name == "MyType")
            {
                var instance = Activator.CreateInstance(v); 
                v.InvokeMember("MyMethod", BindingFlags.InvokeMethod, null, instance, null);
            }
        }  

А это код из внешней сборки (службы wcf), который выдает ошибку,

   MyCustomSection configSection = ConfigurationManager.GetSection("myCustomSection")
          as MyCustomSection ;

configSection подходит к нулю - «ссылка на объект не установлена ​​для экземпляра объекта».

Если он ищет в локальных приложениях app.config, а не web.config, добавляя ту же информацию конфигурации локальнодолжен работать, я бы подумал.

Спасибо.

1 Ответ

1 голос
/ 18 апреля 2011

Вам может потребоваться зарегистрироваться в событии AppDomain.CurrentDomain.TypeResolve. Эта ссылка имеет пример того, как его использовать. http://msdn.microsoft.com/en-us/library/system.appdomain.typeresolve.aspx

...