У меня есть класс с несколькими универсальными перегруженными методами. Я пытаюсь получить конкретный по типам его параметров. Это относительно легко сделать, когда я придерживаюсь первых двух (с аргументами типа int и string). Но независимо от того, что я делаю, я не могу заставить свою программу замечать третью, предназначенную для общего списка. Я использую неправильный аргумент типа? Если да, то какой правильный путь?C#: GetMethod по типу (общий список)
/* rest of code */
static void Main(string[] args) {
MethodInfo method =
typeof(c).GetMethod("m", new Type[] { typeof(int) });
Console.WriteLine(method);
method =
typeof(c).GetMethod("m", new Type[] { typeof(String) });
Console.WriteLine(method);
method =
typeof(c).GetMethod("m", new Type[] { typeof(IEnumerable<>) });
Console.WriteLine(method);
Console.ReadKey();
}
}
static class c
{
public static void m<T>(int i)
{
}
public static void m<T>(String s)
{
}
public static void m<T>(IEnumerable<T> Ls)
{
}
}
Возможный дубликат [Как использовать отражение для вызова универсального метода?] (Http://stackoverflow.com/questions/232535/how-do-i-use-reflection-to -call-a-generic-method) – CSharpie
@CSharpie Я думаю, что вопрос в том, как получить общий метод сам, и ответы на вопрос, который вы ссылаетесь, на самом деле не затрагивают этого. – strongbutgood