2013-10-02 3 views
1

j'ai méthode que sa signature ressembleconversion de type générique Puzzle

public object LoadCache(string cacheName,Type returnType) 

et de cette méthode une autre méthode est appelée signature qui comme celui-ci

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

est-il possible d'envoyer paramètre returnType comme T dans la méthode? Je crois qu'il n'y a aucun moyen de faire cela! mais il doit y avoir un moyen de contourner cela!

+1

Bien sûr, c'est possible. http://msdn.microsoft.com/en-us/library/system.type.makegenerictype.aspx – asawyer

+2

C'est possible, mais vous devrez utiliser la réflexion. – Jon

+5

Une raison pour ne pas rendre le 'LoadCache' générique? –

Répondre

0

J'ai trouvé un Solution similaire ici que je l'ai fait changer au besoin. donc la réflexion est le héros.

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