中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

WebApi系列~dynamic讓你的省了很多臨時類

回到目錄

dynamic這個動態類型早在.net3.5時就已經出現了,當時是伴隨的Linq一起讓我們認識的,但在使用時總覺得有點別扭,因為它是internal的,所以不能跨程序集使用,這(zhe)對于分(fen)層開發的(de)我(wo)們來說顯(xian)然(ran)(ran)是(shi)不能接受的(de),所(suo)以(yi)(yi)把(ba)dynamic了(le)冷落(luo)了(le)很久,應(ying)該說是(shi)5年吧,哈哈,這(zhe)幾天在(zai)睡覺時(shi),突然(ran)(ran)有個想法(fa),最(zui)近在(zai)開發SOA時(shi),為了(le)使客戶端(duan)(duan)(duan)(duan)與服(fu)務端(duan)(duan)(duan)(duan)有類對應(ying)關系,進行序(xu)列(lie)化(hua),所(suo)以(yi)(yi)總要定義(yi)一(yi)(yi)些DTO,當然(ran)(ran)你可以(yi)(yi)把(ba)服(fu)務端(duan)(duan)(duan)(duan)和(he)客戶端(duan)(duan)(duan)(duan)都(dou)引(yin)用這(zhe)個DTO,或者在(zai)客戶端(duan)(duan)(duan)(duan)手動寫一(yi)(yi)個也行,但感覺這(zhe)兩種方式在(zai)程序(xu)解(jie)耦(ou)上都(dou)不完美(mei),這(zhe)時(shi)我(wo)就想起了(le)dynamic,我(wo)在(zai)序(xu)列(lie)化(hua)時(shi),可不可以(yi)(yi)用它做(zuo)中間類型呢?

經過今天的測試,答案是“可以”,這是讓我很興奮的,呵呵

測試代碼:

       var url = "//localhost:24334/api/UserApi";
            var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip };
            using (var http = new HttpClient(handler))
            {
                //await異(yi)步等待(dai)回(hui)應
                var response = http.GetAsync(url);
                
                //將服務端返回(hui)的實體序列化為dynamic動態類
                var obj = JsonConvert.DeserializeObject<dynamic>(response.Result.Content.ReadAsStringAsync().Result);

                //遍歷這個動態集(ji)合
                foreach (var item in obj)
                {
                    return Content("userName:" + item.UserName);
                }
            }

結果代碼:

怎么樣,很不(bu)錯吧,有(you)時(shi)候,一個(ge)新的技術可(ke)能你現在用不(bu)上,但知(zhi)(zhi)道了總(zong)會有(you)好處(chu),沒(mei)準將來的某一天(tian)就會用到!人在學(xue)習知(zhi)(zhi)識(shi)時(shi),沒(mei)有(you)沒(mei)用的知(zhi)(zhi)識(shi),只(zhi)是(shi)你目前可(ke)能用不(bu)到它!

回到目錄

posted @ 2016-01-26 11:21  張占嶺  閱讀(6985)  評論(4)    收藏  舉報