Внедрение зависимости в статический класс - PullRequest
13 голосов
/ 12 июля 2010

Какая конфигурация мне нужна для настройки зависимости статического свойства с помощью контейнера Windsor?

В данный момент у меня есть следующий класс, и я бы хотел, чтобы свойство Logger было введено.

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

   static StuffDooer() { Logger = NullLogger.Instance; }
}

Вот моя конфигурация, хотя, кажется, эта возможность автоматически находит свойства экземпляра не проблема, статическая версия не устанавливается.

<facility id="logging"
          type="Castle.Facilities.Logging.LoggingFacility, Castle.Facilities.Logging"
          loggingApi="nlog"
          customLoggerFactory="Castle.Services.Logging.NLogIntegration.NLogFactory"
          configFile="Configuration/nlog.config" />

1 Ответ

27 голосов
/ 12 июля 2010
StuffDooer.Logger = container.Resolve<ILoggerFactory>().GetLogger(typeof(StuffDoer));

Если вы считаете это уродливым, это правильная реакция.Статика и IoC не смешиваются, как алкоголь и вождение.

...