所有这些代码都是我自己的库,供我的客户端消费者应用程序使用
我有与找到的文档中完全相同的安装程序 here .我也有一个与找到的 Bootstrap 几乎相同的 here ,除了我使用:_bootStrapContainer = new WindsorContainer().Install(FromAssembly.Named("MyAssembly"));
我以为安装程序会将 CaSTLe.Core.Logging.ILogger
注入(inject)到下面的 MyLogger
类中,但我总是得到空记录器,除非我解析 MyLogger .Logger
像这样:
MyLogger lgr = new MyLogger();
lgr.Logger = container.Resolve<ILogger>();
所以我的问题是,我是否总是必须解决问题,或者我是否没有做正确的事情 注册?
using Castle.Core.Logging;
public class MyLogger
{
private ILogger _logger = NullLogger.Instance;
public ILogger Logger
{
get
{
return _logger;
}
set
{
_logger = value;
}
}
}
最佳答案
您需要注册 Windsor 日志记录工具,以使 Windsor 能够为您解析 Logger 属性。
基本上可以归结为:
container.AddFacility<LoggingFacility>(f => f.UseLog4Net());
关于caSTLe-windsor - 我必须用 CaSTLe Windsor 解决 ILogger 问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13258564/