views:

30

answers:

1

What configuration do I need to setup a static property dependency using Windsor container?

I have the following class at the moment and I would like the Logger property to be injected.

static class StuffDooer {

 static ILogger Logger { get; set; }

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

Here's my configuration although, this facility seems to automatically find instance properties not problem, the static version is not being set.

<facility id="logging"
                  type="Castle.Facilities.Logging.LoggingFacility, Castle.Facilities.Logging"
                  loggingApi="nlog"
                  customLoggerFactory="Castle.Services.Logging.NLogIntegration.NLogFactory"
                  configFile="Configuration/nlog.config" />
+2  A: 
StuffDooer.Logger = container.Resolve<ILoggerFactory>().GetLogger(typeof(StuffDoer));

If you think it's ugly, that is the correct reaction. Statics and and IoC don't mix, same as alcohol and driving.

Krzysztof Koźmic
LOL Ok, I might rethink my class design instead
Sir Psycho

related questions