你的位置:首页 > ASP.net教程

[ASP.net教程]WebApi系列~dynamic让你的省了很多临时类


回到目录

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);        }      }

结果代码:

7月瑞士旅游瑞士旅游多少钱一人瑞士游费用瑞士旅游团购瑞士蜜月旅游敦化秋意浓 醉美五花山 春湾石林门票价格?阳春春湾镇风景区门票多少钱? 春湾石林官网,阳春春湾镇风景区官方网站。 湟川三峡官网,连州湟川三峡官方网站。 锦绣中华七夕优惠票价?深圳锦绣中华七夕节特价票怎么买? 2015锦绣中华七夕活动?深圳锦绣中华七夕情人节当天门票多少钱? 林俊杰2015欢乐谷有演唱会吗?林俊杰深圳演唱会地址? 深圳欢乐谷林俊杰见面会在哪里?林俊杰欢乐谷玛雅水公园会来吗? 深圳到佛冈森波拉奇妙世界自驾车怎么走? 中山故居是怎么样的? 南昆山川龙峡漂流怎么去? 珠海梦幻水城有什么特色? 北海最好吃的美食有哪些? 盘点锡城最佳赏枫地 和红叶一起“疯”!(2) 北海住宿哪家实惠? 北海最佳旅游季节是什么时候? LM25010SDX/NOPB Datasheet LM25010SDX/NOPB Datasheet LMS485CM/NOPB Datasheet LMS485CM/NOPB Datasheet LMH6553MR/NOPB Datasheet LMH6553MR/NOPB Datasheet 东莞哪里好玩 东莞哪里好玩 东莞哪里好玩 阳朔旅游 阳朔旅游 阳朔旅游 樱花什么时候开 樱花什么时候开 樱花什么时候开