2013-02-08 35 views
1

鑑於以下建立的PostSharp OnMethodBoundaryAspect,我怎麼在OnEntryOnExit得到typeof(T1)得到一個PostSharp OnMethodBoundaryAspect的通用參數應用到泛型方法

點紅利積分無反射使用。

看點:

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

方法:

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

} 

回答

4

我沒有使用PostSharp的年齡,但它看起來你只需要使用Method屬性:

如果執行的方法是通用的,或者其聲明類型是通用的,則當前屬性包含正在執行的通用實例。

因此,您應該可以使用MethodBase.GetGenericArguments來獲取類型參數。

+1

這是正確的。 'args.Method'將包含調用方法的正確通用實例。 –

+0

謝謝。我剛剛更換爲專業版許可證,方法爲空,並且未填充,因爲我沒有在我的代碼中引用它。就像這裏,我剛剛發現:http://stackoverflow.com/questions/6559589/postsharp-newbie-why-is-args-instance-null – Tyst

相關問題