Как я могу получить TElement из строки myTElementName? - PullRequest
0 голосов
/ 12 сентября 2011

Я хочу создать универсальный построитель запросов для entityframework. Следующему методу ObjectContext.ExecuteStoreQuery<TElement> Method (String, Object[]) я пытаюсь передать универсальные типы. То есть:

BindingSource mybindingSource = new BindingSource();

mybindingSource.DataSource = 
    con.ExecuteStoreQuery<**SomeMethod**(MyTypeName)>(
        myperfectWorkingSql, 
        myperfectWorkingSqlsParams
    );

Как я могу получить TElement из строки MyTypeName? Как должна быть моя функция SomeMethod ()? Или какие методы я должен использовать?

или следующий код тоже выдает ошибку? Вот я не прав?

 function fooo ( Type t) {

 BindingSource mybindingSource = new BindingSource();

mybindingSource.DataSource = 
    con.ExecuteStoreQuery<t>(
        myperfectWorkingSql, 
        myperfectWorkingSqlsParams
    );
 }

ERROR: this gives type t or namespace t can not be found !

1 Ответ

1 голос
/ 12 сентября 2011

Поскольку вы хотите получить свой тип из строки, он будет разрешен во время выполнения, поэтому вы не можете делать такие вещи con.ExecuteStoreQuery<t>.Однако вы можете использовать рефлексию для вызова этого метода и предоставления типа в качестве универсального параметра

См. Этот ответ о том, как вызывать универсальный метод через рефлексию

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