2012-11-25 2 views
0

Castle Windsor Kernal의 ComponentModelCreated 이벤트를 사용하여 구성 요소의 라이프 스타일을 관리하려고합니다.Windsor 라이프 스타일을 관리하는 ComponentModelCreated의 올바른 용도는 무엇입니까?

문제는 이벤트가 전혀 실행되지 않는 것입니까? 내가 그것을 잘못 사용하고 있어야합니다 어떻게? 아래의 코드를 참고하십시오, 내가 잘못 가고 있는지 알고 싶습니다.

감사합니다. 내 위해 Application_Start에서

:

Container = new WindsorContainer().Install(FromAssembly.This()); 
Container.Kernel.ComponentModelCreated += WindsorExtension.Kernel_ComponentModelCreated; 

방법 :

public static void Kernel_ComponentModelCreated(ComponentModel model) 
     { 
      if (model.LifestyleType == LifestyleType.Undefined && model.Name.EndsWith("Controller")) 
      { 
       model.LifestyleType = LifestyleType.Transient; 
      } 
      else if (model.LifestyleType == LifestyleType.Undefined) 
      { 
       model.LifestyleType = LifestyleType.PerWebRequest; 
      } 
     } 

답변

0

난 당신이

이 이벤트가 발생하지 않는 것 말을 어디 부분에 대해 확실하지 않다 전혀

그것은 내 컴퓨터에서 작동

... 근본적인 문제에 관해서는

는 같은 이벤트 핸들러는 ComponentModel 자체를 수정할 수있는 권리 장소 하지 있습니다.

ComponentModel construction contributor을 사용하십시오.

관련 문제