0
[簡體提問]檢測委託的參數在運行時泛型方法裏面
考慮下面的一般方法:
public T MyFunction<T>()
{
// ...
}
而鑑於這就是所謂的以下列方式:
MyFunction<Action<int, string>>();
如何從MyFunction中的代碼中檢測T有哪些參數(因爲它是委託人)?
[你到底想幹什麼?!?!?!?]
我有需要知道參數T有空隙MyFunction<T>(Expression<Func<T>> delegateReturner);
實際簽名的方法,而不實際調用該方法,從而它可以生成一個LINQ表達式。
可以解析表達式樹http://msdn.microsoft.com/en-us/library/bb397951.aspx –
除非我失去了一些東西,這不會幫助。類型是引用的地方是在表達式樹中的CreateDelegate()中,並且在那裏它們只是使用相同的T.所以我最終得到的是一個Type(我已經從typeof(T)獲得)。 –
好的 - 我回過頭來,我能夠進一步查看lambda並找到相關的MethodInfo。但是,這使我的解決方案變弱(因爲它需要更多關於lambda表達式的知識)。是否沒有其他方式來確定typeof()的委託參數? –