简而言之:当调用不同的泛型类型替换时,我需要在字典中区分相同的泛型方法。
static Dictionary<MethodBase, string> cache = new Dictionary<MethodBase, string>();
static void Method1<T>(T g)
{
MethodBase m1 = MethodBase.GetCurrentMethod();
cache[m1] = "m1:" + typeof(T);
}
所以,我重写了 IEqualityComparer,逐个比较 MethodBase 参数。在调试过程中,我想知道没有办法检测泛型方法的真实参数类型,GetGenericArguments 和 GetParameters 都不提供真实类型的调用。我对吗?如果是这样,除了通过第一行 Environment.StackTrace 进行比较之外,我看不到其他方法 - 因为只有这种方法才能探索参数的类型。