2009-06-02 6 views
2

Je commence à peine à enregistrer Fluent pour Castle Windsor et je n'arrive pas à comprendre comment je peux référencer les propriétés que j'ai définies dans la section des propriétés de mon XML fichier de configuration lors de l'enregistrement. J'ai donc ce code pour enregistrer un composant.Castle Windsor Fluent API: Comment définir une valeur de paramètre de composant pour une propriété configurée

RegisterComponent(componentId, Component.For<ConnectionConfig>() 
      .ImplementedBy(typeof(ConnectionConfig)) 
      .Named(componentId) 
      .LifeStyle.Singleton 
      .Parameters(
       Parameter.ForKey("ConnectionId").Eq(connectionId), 
       Parameter.ForKey("CommandTimeoutSeconds").Eq("#{ConnectionInfo.DefaultTimeout}"))); 

Le # {ConnectionInfo.DefaultTimeout} est une propriété que je l'ai défini dans la configuration XML qui est chargé dans le récipient avant les inscriptions Fluent, mais cela ne fonctionne pas, dans ce code, le paramètre passé à l'équation() est traité comme un littéral (bien que cela fonctionne pour d'autres composants, par exemple $ {My.Component} fonctionnerait)

Des idées sur la façon dont je peux référencer les propriétés de mon fichier de configuration lors de l'enregistrement des composants via la nouvelle API Fluent?

Merci

Répondre

1

Plus de versions récentes de Windsor (3.x) ont un support intégré pour cela:

Component.For<Foo>().DependsOn(Dependency.OnAppConfigValue("someValue")) 
Questions connexes