У меня есть своего рода архитектура плагинов в моем решении.Существует хорошо известная папка, в которой размещаются плагины.Плагины реализуют интерфейс, который используется в проекте хоста.
Первоначально я загружаю плагин через Assembly.LoadFrom(fi.FullName).GetTypes()
и определяю необходимый тип с помощью (IPlugin)Activator.CreateInstance(type);
.
Итак, хост (основное приложение)) может выполнить соответствующий код, реализованный сборкой плагина.Пока все работает нормально.
Но недавно я попытался реализовать ведение журнала приложений через NLog и настроил NLog в хост-проекте, который работал отлично.
Проблема в том, что я хотел бы использовать (уженастроил) регистратор в сборке плагина.Если я просто ссылаюсь на NLog и использую его по LogManager.GetCurrentClassLogger();
, то, похоже, не настроена конфигурация.Он не регистрирует файлы, которые я настроил в хост-проекте, из сборки плагина.
Я думал о попытке внедрить экземпляр NLogger (созданный в хост-проекте) в свойство типа плагина.
Возможно ли это или есть предпочтительный способ выполнения таких вещей?Спасибо