「C# Visual Studio 2008.net を使用して」アスペクト クラスとターゲット クラスを作成しましたが、アプリケーションを実行してそれらを織り交ぜるたびに、ターゲット クラスのみが実行されましたが、アスペクト クラスを実行できませんでした。レイピア ルームへの参照を添付しようとしました。 rapier-loom をアンインストールして再インストールしようとしましたが、同じ問題が発生します....何が問題なのですか?
これはアスペクトクラスです:
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);
}
}
}
これは適用方法です:
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);
}
}