Teams Bot 如何使用新的 System.Text.Json 库

本文探讨了在将LuckyDraw代码升级到.NET Core 3.1后,尝试使用System.Text.Json库替换Newtonsoft.Json时遇到的问题。尽管System.Text.Json性能更优,但Teams Bot SDK仍依赖于Newtonsoft.Json。由于SDK中Activity类的属性使用了Newtonsoft.Json的特性,导致在使用System.Text.Json进行序列化和反序列化时出现不匹配。为解决此问题,开发者需要在与SDK交互时手动切换到Newtonsoft.Json进行序列化和反序列化操作,期待SDK能尽快兼容新Json库。
摘要由CSDN通过智能技术生成

我最近把 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值