for (int tsid = 1; tsid < controller.getRowCount(currentTest); tsid++)
{
// values from xls
keyword = controller.getCellData(currentTest, "Keyword", tsid);
//object=controller.getCellData(currentTest, "Object", tsid);
currentTSID = controller.getCellData(currentTest, "TSID", tsid);
stepDescription = controller.getCellData(currentTest, "Description", tsid);
Console.WriteLine("Keyword is:" + keyword);
try
{
// --this is equivalent java code
//MethodInfo method= Keywords.class.getMethod(keyword);
MethodInfo method= method.GetMethodBody(keyword);
String result = (String)method.Invoke(method);
if(!result.StartsWith("Fail")) {
ReportUtil.addKeyword(stepDescription, keyword, result,null);
}
}
catch (...) { ... }
}
Здесь из листа Excel мы читаем ключевое слово, и нам нужно вызвать этот конкретный метод с помощью Reflection:
MethodInfo method= method.GetMethodBody(keyword);
String result = (String)method.Invoke(method);
Но эти две строки кода вызывают у меня синтаксическую ошибку. Я использовал using System.Reflection;
в верхней части файла, но ошибка сохраняется.
MethodInfo method = method.GetMethodBody(keyword)
не может работать, потому что вы используетеmethod
до его инициализации. Что вы пытаетесь сделать на этой линии? - person CodeCaster   schedule 04.01.2014CS0123
или ссылку на соответствующую статью MSDN). - person Alexei Levenkov   schedule 05.01.2014