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 (...) { ... }
}
Здесь из первенствовать листа мы читаем подсказки ключевых слов, и мы должны назвать это специфический метод с использованием Reflection:Как вызвать метод с помощью отражения
MethodInfo method= method.GetMethodBody(keyword);
String result = (String)method.Invoke(method);
Но эти две строки кода бросать мне некоторые ошибка синтаксиса. Я использовал using System.Reflection;
в верхней части файла, но ошибка сохраняется.
'метод MethodInfo = method.GetMethodBody (ключевое слово)' не может работать, потому что вы используете 'метод' перед его инициализацией. Что вы пытаетесь сделать на этой линии? – CodeCaster
-1: «некоторая синтаксическая ошибка» не является хорошим объяснением ошибки. Замечание: если вы выберете сообщение об ошибке в Visual Studio и нажмите «F1», вы получите гораздо более подробное объяснение ошибки из MSDN. Если вы по-прежнему не понимаете сообщение об ошибке - post exact error (вместе с кодом ошибки, например 'CS0123' или ссылкой на соответствующую статью MSDN). –