Skip to content

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

简单就是美