获取应用于泛型方法的PostSharp OnMethodBoundaryspect的泛型参数

本文关键字:泛型 参数 OnMethodBoundaryspect PostSharp 泛型方法 获取 应用于 | 更新日期: 2023-09-27 17:58:12

给定PostSharp OnMethodBoundary以下设置方面,如何在OnEntryOnExit:期间获得typeof(T1)

不使用反射的奖励积分

方面:

public class MyOnMethodBoundaryAspect : OnMethodBoundaryAspect
{
    public override void OnEntry(MethodExecutionArgs args)
    {   
        //args.??? -- How to get typeof(T1)
    }
}

方法:

[MyOnMethodBoundaryAspect]
public void Foo<T1>()
{
}

获取应用于泛型方法的PostSharp OnMethodBoundaryspect的泛型参数

我已经很久没有使用PostSharp了,但它看起来就像你只需要使用Method属性:

如果执行的方法是泛型的或其声明类型是泛型的,则当前属性包含正在执行的泛型实例。

因此,您应该能够使用MethodBase.GetGenericArguments来获取类型参数。