2015-10-02 2 views
1

Я получаю тип, чтобы установить из строки с помощьюИспользовать тип, генерируемый отражением, как параметр общего типа?

var resultingType = Type.GetType(stringOfType); 

и это работает и дает правильный тип.

Тогда я использую свободно-NHibernate отображение базы данных, чтобы попытаться вытащить класс (таблица в базе данных), так

repo.GetQueryable<resultingType>.Where(e => e.id =1) 

я не уверен, если caliburn.micro важно, но это не позвольте мне вызвать resultType. Что я делаю не так?

+0

какая база данных в Caliburn.Micro? Поскольку Caliburn.Micro - это MVVM framework, а не база данных. – mvermef

+0

Microsoft SQL Server. Но до тех пор, пока я подключаюсь к базе данных, это имеет значение? – azulBonnet

+0

Только что понял! Да, я перепутал Nhibernate и Caliburn.micro. Я исправил это. – azulBonnet

ответ

0

Вы должны использовать отражение для него, например:

var method = repo.GetType().GetProperty("GetQueryable").GetMethod.MakeGenericMethod(resultingType); 

Затем вы можете использовать CreateDelegate или Invoke - это зависит от ваших потребностей.

+0

Спасибо, я не знаю, как использовать делегатов. Поскольку я просто хочу вернуть список из репо, соответствующий таблице в базе данных, просто я хочу делегировать и не вызывать экземпляр (это то, что вызывает вызов?)? Как создать и использовать делегат для получения списка? – azulBonnet

Смежные вопросы