通用类型转换拼图

时间:2013-10-02 13:14:25

标签: c# generics casting

我的方法是它的签名看起来像

public object LoadCache(string cacheName,Type returnType)

并且从这个方法中调用另一个方法,就像这样的签名

 BBCacheProvider.BbCacheProvider.GetCache<T>(string cacheName);

有没有办法在方法中将returnType参数作为T发送?

我相信没有办法做到这一点!但必须有办法绕过它!

1 个答案:

答案 0 :(得分:0)

我在这里发现了一个类似的Solution我根据需要改变了它。所以反思是英雄。

public void ClientCacheLoadRerquest(Type tType, string key)
    {
        MethodInfo method = this.GetType().GetMethod("GetCache");
        MethodInfo closedMethod = method.MakeGenericMethod(tType);
        closedMethod.Invoke(this, new object[] { key });
    }