2014-06-05 137 views
2

我是新來創建泛型方法並遇到了投射問題。通用方法無法將類型爲'System.Object'的對象轉換爲X類型

以下是用於與API進行通信的類庫。我試圖將其投射到主應用程序中的對象,這可能是問題,但我不知道。我可能會做錯什麼?

​​
+2

今後,請附上*確切*你的問題的身體內的錯誤信息,說明它是否是一個編譯時錯誤或異常,以及究竟在何處指示你得到的錯誤。 –

回答

2

我想投給生活在我的主要應用對象

這不是完全清楚你的意思,但是你想投的對象只是System.Object實例:

(T)new object() 

可以從未工作,除非T本身object

這裏的問題似乎是,你要使用設計的方法與匿名類型(所以第二個參數是存在一個「榜樣」,使類型推斷的工作) - 但這樣一種類型,不是匿名(T)。

我懷疑你只是想:

return JsonConvert.DeserializeObject<T>(restResponse.Content); 
+0

感謝喬恩......那很簡單。整個DeserializeAnonymousType事情讓我試圖做任何事情來清除錯誤。 –

0

在你的方法最後一行(T)new object()是一個問題。這沒有意義。您正在創建System.Object的新實例並嘗試將其投射到T,其中T可能是任何東西。只有在使用通用參數T作爲System.Object進行調用時,您的方法纔會成功。例如GetRequest<object>(...)會通過,否則會失敗。

我不確定你想在這裏實現什麼。如果您可以提供更多信息,將很容易提供幫助。

相關問題