2015-03-30 4 views
0

Я использую сложную statemachine для обработки определенных вещей в некоторых частях моего приложения, которые требуют управления состоянием. Однако у меня есть проблема, тип ViewModel сохраняется как строка. Любые идеи, как превратить «Type» в нужное TViewModel, у меня есть чувство я делаю что-то глупое и недостающие точкиТип cast to Generic Type для ShowViewmodel

internal void Navigate(Type viewModelType) 
    { 

     T newT1 = (T)(viewModelType); 
     ShowViewModel<TVIEWMODEL>(); 
    } 
+1

Что такое T в вашем примере кода ? –

+0

Итак, вы хотите вызвать общий метод, не имея общего ограничения «доступно»? – Silvermind

+0

В основном у меня есть тип, который я получил от имени строки, и я хочу преобразовать его в TViewModel, поэтому T может быть другим, но он должен наследовать от базового класса MvxViewModel – Barry

ответ

0

Его трудно выработать именно то, что вы пытаетесь сделать

Что T?

Что такое TViewModel?

Как выглядит подпись для ShowViewModel?

Однако, если вы пытаетесь вызвать универсальный метод с использованием типа во время выполнения вы можете использовать MakeGenericMethod

var method = GetType().GetMethod("ShowViewModel"); 
var method2 = method.MakeGenericMethod(viewModelType); 
method2.Invoke(this,null); 
1

все я должен был сделать использование,

ShowViewModel(viewModelType);