Я хочу перехватить вызов метода перед выполнением с помощью Spring.NET. Давайте предположим, что класс/метод перехвата является:Как установить совет Spring AOP перед вызовом метода
public class Listener
{
public void Handle()
{
// method body
}
}
Это то, что я сделал (предполагая, что весь код находится в пространстве имен, например):
1.Created совет:
public class MyAopAdvice : IMethodBeforeAdvice
{
public void Before(MethodInfo method, object[] args, object target)
{
// Advice action
}
}
2.Updated моей весна XML конфига:
<object id="myAopAdvice" type="Example.MyAopAdvice" />
<object id="listener" type="Spring.Aop.Framework.ProxyFactoryObject">
<property name="Target">
<object type="Example.Listener" autowire="autodetect"/>
</property>
<property name="InterceptorNames">
<list>
<value>myAopAdvice</value>
</list>
</property>
</object>
По какой-то причине моего совета код не получает удар I Я поставил в нем точку останова. Тем не менее, если я добавлю некоторые инструкции ведения журнала консоли в свой совет, кажется, что они заносятся в журнал, но не в соответствующее время (т. Е. Перед вызовом Listener.Handle()).
Я готов поспорить, что мои конфиги ошибочны (на этот раз мне может не хватало способа сказать, чтобы конфиги прослушивали только вызов метода Handle, а не какой-либо другой метод, который может быть у слушателя). Какие-нибудь идеи, что не так?