为ShowViewmodel键入强制转换为Generic Type

时间:2015-03-30 12:10:05

标签: c# generics reflection mvvmcross

我正在使用复杂的状态机来处理我的应用程序中需要状态管理的部分内容。但是我有一个问题,ViewModel类型保存为字符串。任何想法如何转变" Type"进入所需的TViewModel,我有一种感觉即时做一些愚蠢的事情并且忽略了这一点

internal void Navigate(Type viewModelType)
    {

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

2 个答案:

答案 0 :(得分:1)

我所要做的只是使用,

 ShowViewModel(viewModelType); 

答案 1 :(得分:0)

很难确切地解决你想要做的事情

什么是T

什么是TViewModel

ShowViewModel的签名是什么样的?

但是,如果您尝试使用运行时类型调用泛型方法,则可以使用MakeGenericMethod

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