我最近把 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里最核心的Activi