C # Generics and Reflection - PullRequest
       10

C # Generics and Reflection

2 голосов
/ 18 января 2010

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

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

Есть предложения? Спасибо

Ответы [ 3 ]

5 голосов
/ 18 января 2010

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

var query = dc.GetTable(Type.GetType("namespace.type, assembly"));
1 голос
/ 19 января 2010

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

1 голос
/ 18 января 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...