AspectInjector 示例
使用Vs2022创建一个Console项目
添加package AspectInjector
添加一个 LogCall 类
csharp
[Aspect(Scope.Global)]
[Injection(typeof(LogCall))]
public class LogCall : Attribute
{
// kind 还可以After Around
[Advice(Kind.Before)]
public void LogEnter([Argument(Source.Name)] string name)
{
Console.WriteLine($"Calling '{name}' method..."); //这边是可以进行调试的
}
}使用它
csharp
// async方法也是支持的
[LogCall]
public void Calculate()
{
Console.WriteLine("Calculated");
}
Calculate();启动测试项目
dotnet run会输出
Calling 'Calculate' method...
Calculated