2011-03-08 3 views
0

이런 식으로 디자인 할 생각이 있습니다. 내 클래스는 클래스 인스턴스가 생성 될 때 등록되는 예외 핸들러 시퀀스를 허용 할 수 있습니다.Castle Windsor는 속성 또는 설정 파일을 기반으로 동적으로 유형을 주입합니다.

class Foo { 
    public Foo (IEnumerable<UnhandledExceptionEventHandler> handlers) { 
     foreach(var handler in handlers) { 
      AppDomain.CurrentDomain.UnhandledException += handler; 
     } 
    } 
} 

이제 이와 같이하고 싶습니다. 나는 성 윈저는 설정 파일에 클래스

[LogExceptions(typeof(SomeExceptionHandler), typeof(AnotherExceptionHandler))] 
class Foo { // code } 

에 적용 또는 특정 속성을 기반으로 하나 나를 위해 핸들러를 주입 갖고 싶어. 그래서 이전의 예에서, 성 윈저 Foo의 인스턴스를 해결하고자 할 때, 그것은 LogExceptions 속성을 볼 것이며, 그것이 내가 원하는 성 윈저의 개념은 무엇

new Foo(new[] { new SomeExceptionHandler(), new AnotherExceptionHandler() }); 

를 통해 Foo를 구성하는 데 필요한 참조 그것을 보면이 문제를 해결할 수 있을까요?

제 디자인이 지체되는 경우 말하십시오. 그러나 건설적인 아이디어를 제공하십시오! 감사!

답변

2

그런 것들을위한 최상의 확장 점은 ComponentModel construction contributors입니다. 구성 요소에 적용 할 핸들러를 발견 한 다음, 서비스 대체 종속성의 배열을 구성해야합니다.

관련 문제