我的解决方案中有某种插件架构。有一个众所周知的文件夹可以在其中放置插件。插件实现了一个在宿主项目中共享的接口。
最初我通过加载插件Assembly.LoadFrom(fi.FullName).GetTypes()
并通过(IPlugin)Activator.CreateInstance(type);
.
因此主机(主应用程序)可以执行插件程序集实现的适当代码。到目前为止,这工作正常。
但最近我尝试通过 NLog 实现应用程序日志记录,并在宿主项目中配置了 NLog,效果很好。
问题是我想在插件程序集中使用(已经配置的)记录器。如果我只是引用 NLog 并使用它,LogManager.GetCurrentClassLogger();
似乎没有配置集。它不会从插件程序集中记录到我在宿主项目中配置的文件。
我想尝试将 NLogger 实例(在宿主项目中创建)注入到插件类型的属性中。
这是可能的还是有一个首选的方法来完成这样的事情?谢谢