2011-03-09 58 views
0

對不起,如果這是重複的,我還沒有找到我所追求的 - 一切似乎都在談論IList。指定通用方法的動態類型

此刻我正在調用方法並將類型作爲通用類型傳遞,它的工作方式與您預期的一樣,但會導致代碼重複。我希望能夠做到

Type.MakeGenericParameter() 

但是這需要一個參數。我打電話給一個通用的方法,而不是創建一個對象。通用方法不包含在通用對象中。

我該怎麼辦沿

Type desiredType = typeof(IPendingProduct); 
... 
Product.Save<desiredType>(instance); 

由於線的東西提前。

回答

0
typeof(Product).GetMethod("Save").MakeGenericMethod(desiredType) 
     .Invoke(null, new object[] {instance}); 

不好,是吧?

注意這還假設Save是公共+靜態的,並且與重載沒有衝突。

+0

是的沒錯 - 那個或代碼重複...艱難的決定。乾杯馬克。假設是正確的。 – Sam 2011-03-09 12:58:28