Этот вопрос Продолжение How to distinguish MethodBase in genericsОбнаружить общие параметры MethodBase
Вкратце: мне нужно различать в Dictionary же универсального метода, когда она вызывается для различных типов замещения родовыми.
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 по аргументу. И во время отладки я задавался вопросом, что нет способа обнаружить реальный тип аргумента generic-метода, ни GetGenericArguments, ни GetParameters не предоставляют реальный тип вызова. Я прав? Если это так, я не вижу другого способа, чем сравнивать по первой строке Environment.StackTrace - потому что только этот метод исследует тип аргумента.
Предлагаю такое же решение, как здесь: http://stackoverflow.com/a/19118345/2042090 –