当前位置: 首页 > news >正文

南浔住房和城乡建设局网站wordpress 免费

南浔住房和城乡建设局网站,wordpress 免费,超链接html代码,河南网站建设优化我最近把 LuckyDraw的代码升级到了 .net core 3.1#xff0c;当然我也很想使用最新的微软json库#xff0c;System.Text.Json这个库的性能比之前Newtonsoft.Json速度更快#xff0c;而且就我本人爱好来说#xff0c;更加喜欢System.Text.Json的命名#xff0c;之前一直觉得…我最近把 LuckyDraw的代码升级到了 .net core 3.1当然我也很想使用最新的微软json库System.Text.Json这个库的性能比之前Newtonsoft.Json速度更快而且就我本人爱好来说更加喜欢System.Text.Json的命名之前一直觉得 JObject, JArray, JToken 这些名字不够符合 c# 的 naming guideline。 微软 这篇文章 很好的告诉大家如何将 Newtonsoft.Json 迁移到 System.Text.Json但是如果你是用Bot SDK来开发teams bot事情比你想象的复杂很多。 我们先来看一下bot sdk的sample code是怎么做的打开EchoBot的代码找到Startup.cs文件你可以看到这么一行 public class Startup {...public void ConfigureServices(IServiceCollection services){services.AddControllers().AddNewtonsoftJson();...} }现在大家明白了把bot samples虽然都已经升级到了.net core 3.1但是它还是把mvc设置成使用Newtonsoft.Json。 那问题到底在哪里为什么一定要使用Newtonsoft? 我们来看一下bot sdk源码看一下bot framework里最核心的Activity的代码。 public partial class Activity {...[JsonProperty(PropertyName type)]public string Type { get; set; }[JsonProperty(PropertyName id)]public string Id { get; set; }[JsonProperty(PropertyName timestamp)]public System.DateTimeOffset? Timestamp { get; set; }[JsonProperty(PropertyName localTimestamp)]public System.DateTimeOffset? LocalTimestamp { get; set; }[JsonProperty(PropertyName localTimezone)]public string LocalTimezone { get; set; }[JsonProperty(PropertyName serviceUrl)]public string ServiceUrl { get; set; }[JsonProperty(PropertyName channelId)]public string ChannelId { get; set; }[JsonProperty(PropertyName from)]public ChannelAccount From { get; set; }... }可以看到每个property都有一个JsonProperty的attribute这个attribute是在Newtonsoft.Json里定义的当序列化的时候会使用指定的name作为json里的属性名字。当然在新的System.Text.Json里也有一个对应的attribute叫JsonPropertyName所以问题就来了如果我们使用新的System.Text.Json来对一个activity对象进行serialize和deserialize由于属性 Type 上只有JsonProperty并没有新的JsonPropertyNameserialize后json就用了首字母大写的{Type:blablabla}如果是使用老的Newtonsoft.Json那就是{type:blablabla}。 当然不单单是JsonProperty这么一个问题还有其他json序列化和反序列化的一些attribute也有类似问题比如下面这两个 namespace Microsoft.Bot.Builder.Dialogs.Adaptive.Templates {[JsonConverter(typeof(ActivityTemplateConverter))]public class ActivityTemplate : ITemplateActivity{...} }namespace Microsoft.Bot.Builder.Dialogs.Adaptive.Actions {public class BeginDialog : BaseInvokeDialog{[JsonConstructor]public BeginDialog(...): base(dialogIdToCall, options){...}...} }正式由于上面这些问题所以如果要继续拥护在mvc里使用新的System.Text.Json同时又要使用bot sdk来做开发那就必须在和bot sdk里一些对象打交道的时候使用老的Newtonsoft.Json。 比如以前可以这么写 public class MessagesController : ControllerBase {[HttpPost(messages)]public async TaskIActionResult GetMessage([FromBody]Activity activity){...} }现在就要 public class MessagesController : ControllerBase {[HttpPost(messages)]public async TaskIActionResult GetMessage(){Activity activity;using (var streamReader new StreamReader(Request.Body)){var bodyString await streamReader.ReadToEndAsync();activity JsonConvert.DeserializeObjectActivity(bodyString);}...} }因为你不能再依赖于mvc来帮你deserialize出Activity对象因为我们的mvc是使用新的System.Text.Json。 当我们要返回一个activity对象的时候以前可以这样 [HttpPost(messages)] public async TaskIActionResult GetMessage([FromBody]Activity activity) {Activity repliedActivity;...return Ok(repliedActivity); }现在就要 [HttpPost(messages)] public async TaskIActionResult GetMessage() {Activity repliedActivity;...return OkFromNewtonsoftJson(repliedActivity); }private IActionResult OkFromNewtonsoftJson(object value) {if (value null){return NoContent();}var json JsonConvert.SerializeObject(value);return Content(json, application/json, Encoding.UTF8); }因为我们不能再靠mvc来帮你serialize一个Activity对象必须手动使用Newtonsoft.Json来序列化。 希望bot sdk和其他sdk能够尽快的兼容新的Json库这样才能使广大开发者拥抱 System.Text.Json。
http://www.yutouwan.com/news/181829/

相关文章:

  • 交易 网站备案建筑设计网站免费
  • 搬家公司网站制作建什么类型网站好
  • 常用的电子商务网站开发技术北京专业推广公司
  • dz门户网站模板下载免费seo培训
  • 做智能网站平台自己做的网站能上传到凡科吗
  • 一个网站建设花了10万元百度竞价价格查询
  • 网站群发软文软件淘宝运营自学教程入门
  • 南京做企业网站公司网站添加icp备案号
  • 需要建设网站的网站中的二级菜单怎么做23
  • 电脑怎样做轰炸网站安徽做网站哪家好
  • 校园网站建设用什么软件写wordpress cms plugin
  • 做外贸不能访问国外网站怎么办wordpress花钱吗
  • 访问国外网站很慢wordpress ie8不兼容
  • wix如何做网站wordpress 调用分类列表
  • 公司网站 自己是空间服务商 cms珠海网站设计培训学校
  • 我做微信淘宝客网站招聘网站建设方案模板下载
  • 建设定制网站tp框架做餐饮网站
  • 温州专业微网站制作价格wordpress博客设置
  • 中午网站做google广告好吗做企业网站有前途吗
  • 景区门户网站建设方案公众号开发 订阅号
  • 郑州市建设信息网站qq群排名优化软件官网
  • 网站前端模板下载国内重大新闻10条
  • 网站主机多大五金制品东莞网站建设技术支持
  • 做短链的网站做网站导航用什么开元程序
  • 网站ui设计怎么做做网站安卓客户端
  • 如何在百度创建网站网站建设方案选择实现方式
  • 怎么打帮人 做网站开发的广告wordpress名言插件
  • php网站建设题目点餐系统微信小程序
  • 免费制作网站平台哪个好品牌logo设计公司
  • 网站推广哪家好唐河微网站建设