我有个想法设计这样的东西。我的类可以接受在创建类的实例时注册的一系列异常处理程序。
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 }
或在配置文件中指定。因此,在前一个示例中,当Castle Windsor想要解析Foo
的实例时,它会查看LogExceptions
属性并看到它需要通过
Foo
new Foo(new[] { new SomeExceptionHandler(), new AnotherExceptionHandler() });
我想看看Castle Windsor的概念是什么让我能够解决这个问题?
如果我的设计迟钝,请说出来,但提出建设性的想法!谢谢!
答案 0 :(得分:2)
像这样的东西的最佳扩展点是ComponentModel construction contributors。您需要了解哪些处理程序适用于您的组件,然后为它们构造一组服务覆盖依赖项。