假設我有一個類,像這樣:如何從封閉式的MethodInfo獲取MethodInfo的開放泛型類型
public class MyClass<T>
{
public void Foo(T t)
{
}
}
現在,假設,我和MyClass<int>
實例其Foo
方法的MethodInfo
。 調用methodInfo.GetParameters()
將返回帶有一個條目的ParameterInfo
數組,其類型爲int
。我的問題是,我似乎無法找到,如果該參數在課程中被聲明爲int
或T
。
我想達到什麼目的?
在運行時,我想從Visual Studio生成的XML Doc文件中讀取由MethodInfo
指定的方法的文檔。
對於上述定義的方法中,關鍵是這樣的:
<namespace>.MyClass`1.Foo(`0)
`0
的指的是聲明類的第一個通用類型參數。爲了能夠構造這個字符串,我需要以某種方式獲得這些信息。
但是如何?MethodInfo
似乎並沒有包含信息...
高級反射技術通常需要回退到IMetaDataImport2。從C#中使用並不容易。 –
@HansPassant:該接口是否支持我的場景? –
所以如果你的方法是「public void Foo(int i,T t,string s)」,你會想得到類似於「 .MyClass'1.Foo(int,'0,string)」? –
user276648