Я искал несколько простых примеров того, как лучше всего использовать 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 с помощью правил для вызываемых методов или с помощью атрибутов.Надеюсь, это даст вам некоторое представление о том, чего я добиваюсь.