我正在使用接受類型的restclient,稍後將其轉換爲正確的IRestResponse
。返回泛型類型的泛型方法
IRestResponse<MyClassA> response = client.Execute<MyClassA>();
由於MyClassA
也可以MyClassB
或MyClassC
我想過做這可能處理這個的通用方法。然而沒有任何運氣。這是我的嘗試:
公共接口IRestClient { IRestResponse響應= PerformExecuteClient()
private RestResponse<T> PerformExecuteClient<T>() {
return client.Execute<T>();
}
編譯器告訴我,client.Execute<T>
不接受抽象類型。這是有道理的,但我不知道如何做其他方法。這可能是我想在這裏實現的嗎?
基於一些評論的補充信息。正如Brains Mains所建議的,該方法在這裏不接受抽象類型。
public interface IRestClient{
IRestResponse<T> Execute<T>(IRestRequest request) where T : new();
}
您可以顯示客戶的類別,特別是執行的簽名嗎? –
爲什麼你需要這種方法,而不是直接使用'client.Execute'?你得到的編譯錯誤是什麼? 'client.Execute '對'T'有'new()'約束嗎? –
Lee
Follwing Lee的評論你可以這樣做:'var response = client.Execute();'如果你想讓寫作更容易一點.. –