Вы захотите использовать отражение .
Вот простой пример:
using System;
using System.Reflection;
class Program
{
static void Main()
{
caller("Foo", "Bar");
}
static void caller(String myclass, String mymethod)
{
// Get a type from the string
Type type = Type.GetType(myclass);
// Create an instance of that type
Object obj = Activator.CreateInstance(type);
// Retrieve the method you are looking for
MethodInfo methodInfo = type.GetMethod(mymethod);
// Invoke the method on the instance we created above
methodInfo.Invoke(obj, null);
}
}
class Foo
{
public void Bar()
{
Console.WriteLine("Bar");
}
}
Теперь это очень простой пример, лишенный проверки ошибок, а также игнорирующий более серьезные проблемы, например, что делать, если тип находится в другой сборке, но я думаю, что это должно поставить вас на правильный путь.