回到目錄
dynamic這個動态類型早在.net3.5時就已經出現了,當時是伴随的Linq一起讓我們認識的,但在使用時總覺得有點别扭,因為它是internal的,是以不能跨程式集使用,這對于分層開發的我們來說顯然是不能接受的,是以把dynamic了冷落了很久,應該說是5年吧,哈哈,這幾天在睡覺時,突然有個想法,最近在開發SOA時,為了使用戶端與服務端有類對應關系,進行序列化,是以總要定義一些DTO,當然你可以把服務端和用戶端都引用這個DTO,或者在用戶端手動寫一個也行,但感覺這兩種方式在程式解耦上都不完美,這時我就想起了dynamic,我在序列化時,可不可以用它做中間類型呢?
經過今天的測試,答案是“可以”,這是讓我很興奮的,呵呵
測試代碼:
var url = "http://localhost:24334/api/UserApi";
var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip };
using (var http = new HttpClient(handler))
{
//await異步等待回應
var response = http.GetAsync(url);
//将服務端傳回的實體序列化為dynamic動态類
var obj = JsonConvert.DeserializeObject<dynamic>(response.Result.Content.ReadAsStringAsync().Result);
//周遊這個動态集合
foreach (var item in obj)
{
return Content("userName:" + item.UserName);
}
}
結果代碼:
怎麼樣,很不錯吧,有時候,一個新的技術可能你現在用不上,但知道了總會有好處,沒準将來的某一天就會用到!人在學習知識時,沒有沒用的知識,隻是你目前可能用不到它!
作者:倉儲大叔,張占嶺,
榮譽:微軟MVP
QQ:853066980
支付寶掃一掃,為大叔打賞!
