2
我有以下控制器(在圖中)調用靜態方法來獲取數據。由於我要在很多其他頁面上使用這些數據,我不想一次又一次地請求數據。這就是爲什麼我要檢查數據是否爲空,然後適當地返回值。當我想在我的類/方法中使用不同類型時,是否存在ant設計解決方案
private static IEnumerable<MovieDetails> GetJsonData(string jsonRequestURL)
{
try
{
using (var wc = new WebClient())
{
var json = wc.DownloadString(jsonRequestURL);
var rootObj = JsonConvert.DeserializeObject<MoviesListRootObject>(json);
var responseObject = rootObj.movieResponse;
var movieDetails = responseObject.Select(movieDetail =>
new MovieDetails
{
Description = movieDetail.description,
MovieURI = movieDetail.formats.res150p,
Thumbnail = movieDetail.image,
Title = movieDetail.title,
ID = movieDetail.id
});
return movieDetails;
}
}
catch (Exception exception)
{
//Error Handling
}
}
這是完美的,直到時間,GetJsonData
是Desrializng只有一個類型(目前MoviesListRootObject
如果我想Root對象恩的ConvertTo AnotherType什麼:FeaturedlistRootObject
)。
但如何在同樣的方法我可以desirialing其他類型?
是泛型唯一選擇還是存在一些更好的設計/功能我可以使用(不知道動態將有多大幫助)?
同樣,如果我只剩下泛型,我可以避免編寫基於不同類型的代碼嗎?
你爲什麼試圖避免使用泛型? – svick
只是說 - 我希望你不要去那個異常處理的生產! – Oded
@svick,因爲我必須檢查所有類型並通過執行來編寫它,如果...,如果.....我不能在這裏使用OOP以更好的方式解決問題嗎? – Simsons