Вы не может. Дженерики в.NET должны быть разрешены во время компиляции. Вы пытаетесь сделать что-то, что разрешило бы их во времени выполнения.
, который единственная вещь, которая можно сделать, состоит в том, чтобы предоставить перегрузке FunctionA, который берет текстовый объект.
<час>Hmmm... комментатор прав.
class Program
{
static void Main(string[] args)
{
var t = typeof(Foo);
var m = t.GetMethod("Bar");
var hurr = m.MakeGenericMethod(typeof(string));
var foo = new Foo();
hurr.Invoke(foo, new string[]{"lol"});
Console.ReadLine();
}
}
public class Foo
{
public void Bar<T>(T instance)
{
Console.WriteLine("called " + instance);
}
}