将依赖项注入静态类

Vin*_*cio 13 castle-windsor

使用Windsor容器设置静态属性依赖关系需要什么配置?

我现在有以下课程,我希望注入Logger属性.

static class StuffDooer 
{
   static ILogger Logger { get; set; }

   static StuffDooer() { Logger = NullLogger.Instance; }
}
Run Code Online (Sandbox Code Playgroud)

这是我的配置,虽然,这个工具似乎自动查找实例属性没问题,静态版本没有设置.

<facility id="logging"
          type="Castle.Facilities.Logging.LoggingFacility, Castle.Facilities.Logging"
          loggingApi="nlog"
          customLoggerFactory="Castle.Services.Logging.NLogIntegration.NLogFactory"
          configFile="Configuration/nlog.config" />
Run Code Online (Sandbox Code Playgroud)

Krz*_*mic 27

StuffDooer.Logger = container.Resolve<ILoggerFactory>().GetLogger(typeof(StuffDoer));
Run Code Online (Sandbox Code Playgroud)

如果你觉得它很难看,那就是正确的反应.静力和IoC不混合,与酒精和驾驶相同.

  • 唯一的区别是,在大多数地方,驾驶时最大允许的血液酒精含量(这里是0.05%).IOC和静力学有一种不容忍的方法. (2认同)