У меня есть переменная, которая содержит иерархию функций, такую как:
string str= "fun1(fun2(),fun3(fun4(fun5(34,33,'aa'),'value',fun6()))"
// эта иерархия приходит как строка из базы данных
Я импортировал System.reflection и использовал метод invokeчтобы вызвать его, но он работает, только если у меня есть только одна функция fun1
.
При использовании вышеуказанной иерархии функций полное выражение воспринимается как одно имя функции.
Я использую приведенный ниже код для вызова своей иерархии функций:
public static string InvokeStringMethod(string typeName, string methodName)
{
// Get the Type for the class
Type calledType = Type.GetType(typeName);
// Invoke the method itself. The string returned by the method winds up in s
String s = (String)calledType.InvokeMember(
methodName,
BindingFlags.InvokeMethod | BindingFlags.Public |
BindingFlags.Static,
null,
null,
null);
// Return the string that was returned by the called method.
return s;
}
Ссылка: http://www.codeproject.com/KB/cs/CallMethodNameInString.aspx
Скажите, пожалуйста, что мне делать?