Замок Виндзор 3 АОП через атрибуты - PullRequest
1 голос
/ 13 декабря 2011

Я искал несколько простых примеров того, как лучше всего использовать Castle Windsor 3 и AOP, но с помощью атрибутов, а не путем добавления перехватчиков в определении каждого компонента.

Так есть простой способ получить методс таким атрибутом:

public class SomeClass
{
   [Log]
   public virtual void DoSomething() {...}
}

Для вызова через перехватчик, например, так:

public class SomeInterceptor : IInterceptor
{
   //... add the logger and write out method start, exception, finished info
}

Без необходимости указывать перехватчик для фактической конфигурации SomeClass, например, так:

someContainer.Register(Component.For<SomeClass>().ImplementedBy<SomeClass>()).Interceptors<SomeInterceptor>();

В большинстве других платформ DI, которые я использовал, вы можете настроить AOP с помощью правил для вызываемых методов или с помощью атрибутов.Надеюсь, это даст вам некоторое представление о том, чего я добиваюсь.

1 Ответ

3 голосов
/ 14 декабря 2011

Вы хотите добавить участник конструирования ComponentModel , который будет проверять компоненты по мере их регистрации и добавлять перехватчик к тем, кто в этом нуждается.

...