Я новичок в Reflection, и после трех дней поиска я не смог получить результат. Я был бы признателен за помощь.C# Refinding binding result Linq2Sql to list
То, что я пытаюсь сделать, - связать результат со списком.
У меня есть класс:
public class DropdownList
{
public string ID { get; set; }
public string Description { get; set; }
}
У меня есть функция:
public static List<DropdownList> getDropdownList(string Method)
{
using (var Context = new WebDataContext())
{
var method = Context.GetType().GetMethod(Method);
if (method == null) throw new InvalidOperationException("Defined DataContext does not have method" + Method);
var result = method.Invoke(Context,null);
var toReturn = (from x in result select new DropdownList { ID = x.???, Description = x.??? }).ToList();
return toReturn;
}
}
Я связываю это с комбобоксом:
StatuscomboBoxProperties.DataSource = getDropdownList("Get_SupplierList");
"Результат"
в toReturn дать следующая ошибка:could not find an implementation of the query pattern for source type "system.Reflection.MethodInfo' "Select" not found
Мой вопрос: если вы наведите указатель мыши на результат, появится Result View, и я смогу увидеть данные, возвращаемые методом, но как я привяжу свой список к этим данным.
'Invoke' возвращает' object'. Поэтому результатом является «объект». Вы должны знать общий базовый тип (или интерфейс) и выдавать ему результат 'method.Invoke'. Я также думаю, что вы должны найти другой способ сделать это, потому что использование отражения не подходит в вашем случае. –
Нет, вы не хотите использовать Reflection здесь. Если вы подходите к альтернативному решению, дайте мне знать, и я подниму демоверсию, используя делегатов. –
Любое альтернативное решение. Очень важно передать метод в виде строки, поскольку я создал структуру, которая управляет внешним видом и сетью моих сеток (devexpress) с автономного исполняемого файла. Это мой последний шаг, чтобы связать выпадающие списки с полями в сетке, где это необходимо. –