Пытаюсь настроить свой опыт petapoco, я следующая ситуация:C# Список Тип исполнения (petapoco)
class Animal
{
// common properties
}
class Dog:Animal
{
//particular properties including custom attributes for properly working with DB
}
class Cat:Animal
{
}
Обычно я использую
List<Dog> ret = db.Query<Dog>("select * from dogs").ToList();
Я создал список (категория) хранящих треки между таблицами в базе данных и объектами, фактически реализованными в моем коде (например, собака класса)
Таким образом, я получаю тип во время выполнения из списка категорий:
Type t = ((Category)Categories.Current).ObjectType;
В моем отладчике я вижу тип Dog
для t. Но я не знаю, как преобразовать полученный во время выполнения тип в то полезное для
List<t> ret = db.Query<t>("select * from ...").ToList();
Заранее спасибо,
PS. Я не хочу использовать базовый Animal для списка запросов, поскольку список результатов заполняет GridView
, а производные классы (например, Dog) содержат определенные атрибуты для отображения, фильтрации и т. Д.
Возможно, вы могли бы использовать отражение для вызова 'Query'? ([This] (http://stackoverflow.com/a/232621) может помочь, в этом случае это дубликат [Как использовать отражение для вызова общего метода?] (Http://stackoverflow.com/questions/232535/how-to-use-reflection-to-call-generic-method).) –