我想传递参数给一个自定义appender的构造函数,所以我想我必须重写Appenders的初始化机制。问题在于,我无法在文档中找到将其挂钩的方式,这使我认为这是不可能的(或者文档不完整)。我可以将参数传递给自定义log4net Appender的构造函数吗?
至于版本1.2.10,这是不可能的,无需修改源代码。相关的部分是在Repository\Hierarchy\XmlHierarchyConfigurator.cs:L286
:
IAppender appender = (IAppender)Activator.CreateInstance(SystemInfo.GetTypeFromString(typeName, true, true));
正如你所看到的,它应该使用这种过载(或东西沿着这种方式),让我实现我的需求。
Activator.CreateInstance(Type, Object[])
Stefan,问题正是你最后写的那个问题:我必须提供一个复杂的对象,它在运行时被实例化。 无法通过XML配置提供它。 – Simone 2010-10-15 12:21:29
您不能基于某些参数字符串创建此类的实例吗? – 2010-10-16 07:38:33
不,我必须通过另一个现有的对象。 – Simone 2010-11-11 11:59:03