2010-06-04 47 views
0
 windsorContainer.Register(
      Component.For<ClassWithReferenceToDisposableService>() 
      .LifeStyle.Transient 
      .DynamicParameters((k, d) => 
                 { 
                  d["disposableComponent"] = 
                   windsorContainer.Resolve<DisposableComponent>(); 
                 })); 


     windsorContainer.Register(Component.For<DisposableComponent>().LifeStyle.Transient); 

     ClassWithReferenceToDisposableService service = windsorContainer.Resolve<ClassWithReferenceToDisposableService>(); 
     windsorContainer.Release(service); 

當容器釋放服務時,由於動態參數不會處理「disposableComponent」。我如何在創作期間選擇並告訴Windsor在發佈服務時發佈「disposableComponent」?Windsor:如何在釋放組件時告訴容器釋放DynamicParameters?

回答

1

DynamicParameters有一個超載返回委託。這個委託在組件被髮布時被調用,這就是你可以釋放動態參數的地方。例如,請參閱the documentation