首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >方面类代码不能与剑杆织机中的目标类代码交织在一起

方面类代码不能与剑杆织机中的目标类代码交织在一起
EN

Stack Overflow用户
提问于 2011-12-27 16:57:35
回答 1查看 75关注 0票数 0

我写了方面类和目标类‘使用C# Visual Studio2008.net’,但每次我运行应用程序来交织它们只执行的目标类,但我不能执行方面类,我试图附加引用到剑杆织机,并试图卸载剑杆织机,并再次安装它,但同样的问题occurs....what是问题吗?

这是aspect类:

代码语言:javascript
复制
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方法:

代码语言:javascript
复制
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();
       }
    }
 
 }

目标类是:

代码语言:javascript
复制
public class Target
{
    public virtual void Hello(string name)
    {
        Console.WriteLine("Hello {0}!", name);
    
    }
    
}
EN

回答 1

Stack Overflow用户

发布于 2012-03-11 16:54:35

问题是您通过ctx.Instance调用从通知方法隐式地调用了Target类的ToString()方法。这将导致无穷无尽的递归,因为ToString也与通知方法交织在一起。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8642756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档