2010-07-12 23 views
13

Quale configurazione è necessaria per impostare una dipendenza di proprietà statiche utilizzando il contenitore Windsor?Iniezione di una dipendenza in una classe statica

Ho la seguente classe al momento e vorrei che la proprietà Logger fosse iniettata.

Ecco la mia configurazione sebbene, questa funzione sembra trovare automaticamente le proprietà dell'istanza non un problema, la versione statica non viene impostata.

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

risposta

26
StuffDooer.Logger = container.Resolve<ILoggerFactory>().GetLogger(typeof(StuffDoer)); 

Se si pensa che è brutto, che è la reazione giusta. Statics e IoC non si mescolano, come l'alcol e la guida.

+0

LOL Ok, potrei riconsiderare il mio design di classe invece –

+2

L'unica differenza è che nella maggior parte dei luoghi c'è un livello massimo consentito di alcol nel sangue durante la guida (qui è lo 0,05%). Il CIO e la statistica hanno un approccio di non tolleranza. –

Problemi correlati