2011-03-08 60 views
0

我有一個想法來設計這樣的東西。我的類可以接受在創建類的實例時註冊的一系列異常處理程序。Castle Windsor根據屬性或配置文件動態注入類型

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

現在,我想要做這樣的事情。我希望Castle Windsor爲我注入處理程序,或者根據應用於該類的屬性

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

或在配置文件中指定。因此,在前者的例子,在溫莎城堡要解決的Foo一個實例,它會看着LogExceptions屬性,並認爲它需要通過

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

構建Foo是什麼,我想在溫莎城堡的概念看看會不會幫我解決這個問題?

如果我的設計遲鈍,請說出來,但提供建設性的想法!謝謝!

回答

2

對於這樣的東西最好的擴展點是ComponentModel construction contributors。您將需要發現處理程序應用於您的組件的情況,然後爲它們構建一組服務重寫依賴關係。

相關問題