文章出處
文章列表
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); } }
結果代碼:
怎么樣,很不錯吧,有時候,一個新的技術可能你現在用不上,但知道了總會有好處,沒準將來的某一天就會用到!人在學習知識時,沒有沒用的知識,只是你目前可能用不到它!
文章列表
全站熱搜