我想實現一個非常基本的Spring.Net的建議之前,只是打印一些信息到控制檯。下面是Spring配置的相關部分:Spring.Net之前建議不工作
<!-- Before Advice: Method Logging -->
<object id="methodLoggingBeforeAdvice"
type="Ch.Test.AddressBook.Common.Advice.MethodLoggingBeforeAdvice" />
<!-- Program Proxy w/ Advice Applied -->
<object id="programProxy"
type="Spring.Aop.Framework.ProxyFactoryObject">
<property name="target" ref="programProxyTarget" />
<property name="interceptorNames">
<list>
<value>methodLoggingBeforeAdvice</value>
</list>
</property>
</object>
<!-- Target, which the advice is applied to -->
<object id="programProxyTarget"
type="Ch.Test.AddressBook.Ui.ConsoleUi.Program">
<constructor-arg ref="repository"/>
</object>
這裏是建議:
public class MethodLoggingBeforeAdvice : IMethodBeforeAdvice
{
public void Before(MethodInfo method, Object[] args, Object target)
{
// Log method start
Console.Out.WriteLine(
"MethodLoggingBeforeAdvice: Entering method '"
+ method.Name + "'");
// Log method arguments
for (int i = 0; i < args.Length; i++)
{
Console.Out.WriteLine("MethodLoggingBeforeAdvice: Argument " + (i + 1)
+ " - " + args[0].ToString());
}
}
}
一切都建立精細,應用程序正在運行,程序類被實例化和方法的調用,但是有不是從建議中輸出的。我似乎無法弄清楚爲什麼......先謝謝了!
不錯,我不知道。對於僅使用一次的目標對象來說很有用。 – Christopher 2011-05-25 06:58:41