У меня есть идея спроектировать что-то вроде этого. Мой класс может принимать последовательность обработчиков исключений, которые регистрируются при создании экземпляра класса.
class Foo {
public Foo (IEnumerable<UnhandledExceptionEventHandler> handlers) {
foreach(var handler in handlers) {
AppDomain.CurrentDomain.UnhandledException += handler;
}
}
}
Теперь я бы хотел сделать что-то подобное. Я хочу, чтобы Касл Виндзор вводил мне обработчики либо на основе атрибутов, примененных к классу
[LogExceptions(typeof(SomeExceptionHandler), typeof(AnotherExceptionHandler))]
class Foo { // code }
или указано в конфигурационном файле. Поэтому в первом примере, когда Castle Windsor хочет разрешить экземпляр Foo
, он смотрит на атрибут LogExceptions
и видит, что ему нужно создать Foo
через
new Foo(new[] { new SomeExceptionHandler(), new AnotherExceptionHandler() });
Какие концепции в замке Виндзор, на которые я хочу взглянуть, позволят мне решить эту проблему?
Если мой дизайн запаздывает, скажите, пожалуйста, но предлагайте конструктивные идеи! Спасибо!