2
我有一個方法採用泛型類型,對API執行休息查詢並返回序列化對象。在代碼中檢測動態類型?
它工作的很好,但是,我想擴展它以便在調用沒有預定義類型的API時創建動態對象。
我有這個工作與唯一的變化是一個自定義的反序列化器,但是,我不得不基本上覆制/粘貼我的方法與一個不同的名稱,因爲我不能找出一種檢測類型爲動態的方法。
一個小例子:
public T PerformQuery<T>()
{
var deserializer = new JsonDeserializer();
var res = deserializer.Deserialize<T>(response);
return res;
}
public Dynamic PerformQueryDynamic()
{
var deserializer = new DynamicJsonDeserializer();
var res = deserializer.Deserialize<T>(response);
return res;
}
我想什麼:
public T PerformQuery<T>()
{
if(Typeof(T) == Typeof(Dynamic))
var deserializer = new DynamicJsonDeserializer();
else
var deserializer = new JsonDeserializer();
var res = deserializer.Deserialize<T>(response);
return res;
}
我讀過其他職位在這裏,我明白爲什麼TYPEOF不與充滿活力的工作,但是,我是想知道是否有什麼可以做我想在這裏做的?在這種方法中還有其他的東西,比如Oauth調用和類似的東西,如果我可以把它作爲一種方法的話,它會變得更加整潔。
...沒有一個解決方案,我想只是添加一個布爾到構造函數,但是,如果有答案,似乎是一種浪費。
這樣的方式如何:[如何檢查泛型參數是否在.NET 4.0中是動態的](http://stackoverflow.com/questions/3277419/how-to-check-if-a-generic-parameter-是 - 動態在網絡4-0)? – har07