我写了方面类和目标类‘使用C# Visual Studio2008.net’,但每次我运行应用程序来交织它们只执行的目标类,但我不能执行方面类,我试图附加引用到剑杆织机,并试图卸载剑杆织机,并再次安装它,但同样的问题occurs....what是问题吗?
这是aspect类:
using System;
using Loom;
using Loom.JoinPoints;
namespace HelloAspect
{
public class TraceAspect : Aspect
{
[Loom.JoinPoints.IncludeAll]
[Call(Advice.Around)]
public T Trace<T>([JPContext]Context ctx, params object[] args)
{
Console.WriteLine(ctx.Instance + "." + ctx.CurrentMethod.Name + " called");
ctx.Invoke(args);
return default(T);
}
}
}这是Application方法:
using System;
using Loom;
using Loom.JoinPoints;
namespace HelloAspect
{
class Program
{
static void Main(string[] args)
{
string name;
Console.Write("Your name: ");
name = Console.ReadLine();
TraceAspect aspect1 = new TraceAspect();
Target target = Loom.Weaver.Create<Target>(aspect1);
target.Hello(name);
Console.ReadLine();
}
}
}目标类是:
public class Target
{
public virtual void Hello(string name)
{
Console.WriteLine("Hello {0}!", name);
}
}发布于 2012-03-11 16:54:35
问题是您通过ctx.Instance调用从通知方法隐式地调用了Target类的ToString()方法。这将导致无穷无尽的递归,因为ToString也与通知方法交织在一起。
https://stackoverflow.com/questions/8642756
复制相似问题