c# - 如何在运行时加载的程序集中使用公共(public) log4net 引用?

标签 c# reflection logging log4net dynamic-binding

我有一个单线程应用程序,它使用以下代码在运行时加载多个程序集:

objDLL = Assembly.LoadFrom(strDLLs[i]);

我希望以这种方式加载的程序集使用与其余程序集相同的 log4net.ILog 引用。但是看起来运行时加载的程序集有一个完全不同的引用并且需要它们自己的配置。有谁知道单个 log4net.ILog 是否可以跨使用 .NET 接口(interface)在运行时加载的程序集使用?

这是 Program 类中的 log4net.ILog 创建和支持代码:

   // Configure log4net using the .config file
   [assembly: log4net.Config.XmlConfigurator(Watch = true)]

   public static class Program
   {
      private static log4net.ILog m_Log = null;

      [STAThread]
      public static void Main(string[] args)
      {
         try
         {
            m_Log = log4net.LogManager.GetLogger(
               MethodBase.GetCurrentMethod().DeclaringType);
         }

      }
   }

最佳答案

如果您的所有程序集都实现了一个公共(public)接口(interface),那么您可以拥有一个属性或构造函数参数,允许您将 ILog 的本地实例传递给动态加载的程序集。

关于c# - 如何在运行时加载的程序集中使用公共(public) log4net 引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/136172/

相关文章:

c# - COM:如何检索 CLSID? Prog-Id可以用吗?

c# - Jquery ddl更改事件未触发

java - 反射+spring依赖注入(inject)

C# 一般设置属性

linux - Filebeat 和 Logstash 有时会读取旧文件

node.js - 如何使用 Winston for Node JS 在每个日志行中记录请求和事务 ID?

c# - 我应该在数据库中存储桌面应用程序的本地化数据吗?

c# - 上传日志(.txt 文件)与在数据库中每个事件插入 1 条记录,记录日志的效率

JavaBean 和 DSL

java - 为什么 jExcelAPI 在 stderr 中转储警告以及如何停止这种行为?