2010-06-04 71 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