3

所有这些代码都是我自己的库,供我的客户端消费者应用程序使用我的安装程序与此处找到的文档中的安装程序完全相同。我也有一个与在这里找到的几乎相同的引导程序,除了我使用:_bootStrapContainer = new WindsorContainer().Install(FromAssembly.Named("MyAssembly"));

我以为安装程序会将其注入Castle.Core.Logging.ILogger到下面的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;
       }
    } 
}
4

2 回答 2

2

您需要注册 Windsor 日志记录工具,以使 Windsor 能够为您解析 Logger 属性。

这是使用xml和使用代码设置日志记录工具的示例

基本上可以归结为:

container.AddFacility<LoggingFacility>(f => f.UseLog4Net());
于 2012-11-08T04:28:58.147 回答
0

也许它不起作用,因为它已经有一个值,在不初始化字段的情况下重试,将它移到属性的 get

于 2012-11-09T07:50:13.557 回答