C # Generics and Reflection

2

Я использую linq. Все мои запросы выглядят как var query = dc.GetTable<myType>().

Я бы хотел выбрать "myType", используя строковый параметр. Я попытался создать объект типа с использованием отражения, но компилятор не распознает объекты типа как определения классов.

Любые предложения? Благодаря

Теги:
linq
generics
reflection

3 ответа

5

Существует метод GetTable (Type), который делает именно то, что вы ищете:

var query = dc.GetTable(Type.GetType("namespace.type, assembly"));
  • 0
    Это хороший подход, но я разрабатываю приложение в три слоя. Все они используют общую логику. Я хотел бы настроить класс работы, используя текстовые строки на уровне представления, и эта информация распространяется на уровень постоянства. Спасибо
  • 0
    @dalbornoz - ваш уровень персистентности должен знать, из какой таблицы загружать данные. Вы не можете избежать этого.
1

Вы можете создать экземпляр запроса как общий объект Table < > , но он не будет распознан во время компиляции. см. Использование объектов типа в качестве параметров типа для генериков в С#

1

Зачем вам это нужно? Используя общий метод, подобный тому, который вы делаете сейчас, дает вам поддержку проверки времени компиляции, тогда как параметр строки не указан.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню