2010-01-18 2 views
2

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

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

Любые предложения? Thanks

ответ

1

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

5

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

var query = dc.GetTable(Type.GetType("namespace.type, assembly")); 
+0

Это хороший подход, но я разрабатываю приложение в трех слоях. Все они используют общую логику. Я хотел бы настроить класс работы, используя текстовые строки в уровне представления, и эта информация распространяется на уровень сохранения. Спасибо – user253501

+0

@dalbornoz - Ваш уровень персистентности должен знать, в какую таблицу загружать данные. Вы не можете этого избежать. – 2010-01-19 06:04:20