首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我不能在net core 3 startap中使用ContractResolver

在 .NET Core 3 Startup 中无法使用 ContractResolver 是因为在该版本的 .NET Core 中,Microsoft.AspNetCore.Mvc.NewtonsoftJson(Microsoft.AspNetCore.Mvc.Core) 这个包已经过时,不再支持 Newtonsoft.Json 的 ContractResolver。

ContractResolver 是 Newtonsoft.Json 库中的一个重要组件,它负责解析 JSON 对象和 .NET 类型之间的映射关系,控制序列化和反序列化过程中属性的选择和转换规则。然而,从 .NET Core 3 开始,微软推出了自己的 JSON 序列化库 System.Text.Json,并且成为 .NET Core 的默认选项,因此不再支持使用 Newtonsoft.Json 的相关功能。

要在 .NET Core 3 Startup 中使用自定义的 ContractResolver 功能,可以考虑以下替代方案:

  1. 自定义 JsonConverter: 在 .NET Core 3 中,可以通过自定义 JsonConverter 来实现类似的功能。你可以创建一个继承自 System.Text.Json.Serialization.JsonConverter 的类,并重写其中的方法以实现自定义的属性选择和转换规则。
  2. 使用扩展方法 AddNewtonsoftJson: 如果你非常需要使用 Newtonsoft.Json 的 ContractResolver,可以通过手动添加 Newtonsoft.Json 支持的方式来绕过 .NET Core 3 默认的 System.Text.Json。可以使用 Microsoft.AspNetCore.Mvc.NewtonsoftJson 这个包,并在 Startup.cs 中的 ConfigureServices 方法中添加以下代码:
  3. 使用扩展方法 AddNewtonsoftJson: 如果你非常需要使用 Newtonsoft.Json 的 ContractResolver,可以通过手动添加 Newtonsoft.Json 支持的方式来绕过 .NET Core 3 默认的 System.Text.Json。可以使用 Microsoft.AspNetCore.Mvc.NewtonsoftJson 这个包,并在 Startup.cs 中的 ConfigureServices 方法中添加以下代码:
  4. 这样就可以在 Startup.cs 中使用 ContractResolver 了。

需要注意的是,尽管可以使用上述方案解决问题,但由于微软将 System.Text.Json 设计为默认的 JSON 序列化库,推荐在 .NET Core 3 及更高版本中使用它,以便最大程度地享受到微软团队对性能和安全性的优化。如果使用 Newtonsoft.Json 的特定功能非常必要,那么可以选择手动添加 Newtonsoft.Json 支持,但需要权衡性能和依赖问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

从 Newtonsoft.Json 迁移到 System.Text.Json

一.写在前面 System.Text.Json 是 .NET Core 3 及以上版本内置的 Json 序列化组件,刚推出的时候经常看到踩各种坑的吐槽,现在经过几个版本的迭代优化,提升了易用性,修复了各种问题...System.Text.Json ,如果打算使用 .NET 7 不妨考虑一下 System.Text.Json。 Newtonsoft.Json 使用 13.0.2 版本,基于 .NET 7。...3.大小写 默认情况下两者序列化都是 Pascal 命名,及首字母大写,在 JavaScript 以及 Java 等语言中默认是使用驼峰命名,所以在实际业务是离不开使用驼峰的。...详细说明:如何使用 System.Text.Json 支持某种无效的 JSON 3.尾随逗号 尾随逗号即 Json 末尾为逗号: 无尾随逗号: { "name": "xiaoshi",...就个人而言是打算使用 System.Text.Json 了。

2.3K40
  • 【C】KoobooJson在asp.net core使用

    详细介绍可以参考官方说明,项目地址:https://github.com/Kooboo/Json ps:楼主目前使用的版本是:asp.net core 2.2 在 asp.net core 2.x ,...默认使用的json序列化工具是 Newtonsoft.Json ,如果你正在使用 asp.net core mvc/webapi ,并且需要对 Json 序列化进行一些配置(例如 首字母大小写,日期格式化等...),那么你可能在 Startup.cs 中看到过此方法(AddJsonOptions)的应用: public void ConfigureServices(IServiceCollection services...:ffff.yyyy-MM-dd:HH-mm-ss 或者 上一段代码类型为 byte[] 的 Avatar 属性,可以使用:值格式化特性 来实现。...CoreJson序列化处理整理 2.将 .NET Core 2.0 的默认 JSON 解析器替换为 Jil ———————————————— 版权声明:本文为CSDN博主「j_teng」的原创文章,

    65650

    Unity3D网络通讯(一)--Asp.Net Core WebApi创建发布注意事项

    Asp.Net Core WebApi后端 ?...结果在创建后调用Get方法时是接收不到数据的,这篇主要就是说一下创建及发布过程遇到的问题和解决方法。 01 Api简单介绍 ? 我们默认创建了一个.Net Core的项目 ? ?...按上面的网址,直接找了的.net core 3.1的版本,然后右侧红框那点击Hosting Bundle进行下载,下载后安装即可。 ? ?...03 Json大小写的问题 其实按照上面两步,基本我们的IIS的网站也搭建成,可以正常使用了,不过在用Unity3D调用的时候发现Json反序列化时对应的类值都解析不出来,搜索查了一下原因是Unity3D...改为NewtonsoftJson后,Unity3D使用JsonUnity也可以正常反序列化了。 Controller代码 ?

    1.4K10

    从ASP.NET Core2.2到3.0你可能会遇到这些问题

    作者:依乐祝 原文链接:https://www.cnblogs.com/yilezhu/p/10661161.html 遇到的问题 ASP.NET Core2.0时代,若要为项目添加 EF Core...某些程序集已从2.x和3.0之间的Microsoft.aspnetcore.app删除。如果您正在使用aspnet/AspNetCore #3755列出的包的API,则可能需要单独添加到。...Json.NET 支持 作为提高 ASP.NET Core 共享的框架工作的一部分, Json.NET已从 ASP.NET Core 共享框架删除。...若要在 ASP.NET Core 3.0 项目中使用 Json.NET: 添加到包引用Microsoft.AspNetCore.Mvc.NewtonsoftJson 更新ConfigureServices...若要启用运行时编译,请参阅ASP.NET Core 的 Razor 文件编译。 总结 感觉微软在努力实现ASP.NET Core的模块化,减小各种依赖,让包变得更小。

    1.4K20

    abp集成IdentityServer4和单点登录

    比较笨,文档看了还是不会。好在最后还是试出来了。 ---- 创建登录中心项目 到官网下载一个最新的模板项目,项目类型自选(我们项目用的vue,所以我选择的vue项目,.net core3.x)。...右键src目录添加一个asp.net core web 空项目,在项目中添加Startup文件夹,把Startup.cs和Program.cs移动到Startup文件夹,并修改这两个文件的命名空间增加Startup...在nuget添加Abp.ZeroCore.IdentityServer4、Abp、Abp.Castle.Log4Net等引用,添加Web.Core、EntityFrameworkCore项目引用 在...项目中复制appsettings.json和log4net.config到IdentityServer项目,在appsettings.json文件增加IdentityServer4配置 { "Logging...项目 从IdentityServerDemo项目复制IdentityServer目录和文件到xxx.Web.Core项目,修改文件的命名空间和当前项目对应。

    5.1K31

    将传统 ASP.NET 应用迁移到 .NET Core

    你依然可以在.NET Core工程里引用一个.NET Framework的包,但是这会让你的应用只能跑在Windows上 ,推荐这么做。.../en-us/dotnet/core/tools/dotnet-add-package 3 客户端包管理 ASP.NET Core 曾经使用 Bower 去管理客户端包。...libman.json 可以直接编辑,也能在UI更改,都有智能感知支持。的建议是,如果你的应用不是重客户端的话,使用 libman 去管理前端包,因为其他技术比如NPM 太重量级了。...但在迁移之前,你可以考虑使用别的方法,在一个普通ASP.NET Core Controller 实现这些功能。...v=lvNJVuWBoD_RVZwyBT15T_i3_ZuEIaV_w0t7zI_UYxY"> 新的razor 语法能够兼容以前的 HTML helpers,也就是说,你依然能在ASP.NET

    4.7K41

    ASP.NET Core Web API设置响应输出的Json数据格式的两种方式

    前言 在ASP.NET Core Web API设置响应输出Json数据格式有两种方式,可以通过添加System.Text.Json或Newtonsoft.JsonJSON序列化和反序列化库在应用程序全局设置接口响应的...JSON序列化和反序列化库 System.Text.Json System.Text.Json是 .NET Core 3.0 及以上版本内置的 JSON 序列化和反序列化库。...设置Json统一格式需求 修改属性名称的序列化方式,在.Net Core默认使用小驼峰序列化Json属性参数,前端想要使用与后端模型本身命名格式输出(如:UserName)。...{                 //修改属性名称的序列化方式[前端想要使用与后端模型本身命名格式输出]                 options.SerializerSettings.ContractResolver...开发者的开源技术社区,旨在为开发者们提供全面的C#/.NET/.NET Core相关学习资料、技术分享和咨询、项目推荐、招聘资讯和解决问题的平台。

    83010

    .NET性能系列文章二:Newtonsoft.Json vs System.Text.Json

    :Newtonsofts Json.NET[3] 和 Microsofts System.Text.Json[4]....然而,我们需要考虑的是,System.Text.Json自.NET Core 3.1 起就默认随.NET SDK 交付。既然如此,Newtonsoft 似乎仍然是最受欢迎的 json 框架。...如果你使用自定义的JsonSerializerSettings,注意不要多次实例化ContractResolver,否则你会降低很多性能。...甚至认为,可以推断出结果,目前使用System.Text.Json比Newtonsoft.Json更快。 请记住,这些结果只对最新的.NET 7 有效。...如果你使用的是其他版本的.NET,情况可能正好相反,Newtonsoft 可能会更快。 希望,的文章可以帮助你对序列化器做出选择选择,并让你对性能和基准测试的世界有一个有趣的切入点。

    1.5K30

    用ASP.NET Core 2.1 建立规范的 REST API -- 翻页排序过滤等

    (从ASP.NET Core 2.0 迁移至 ASP.NET Core 2.1: https://docs.microsoft.com/en-us/aspnet/core/migration/20_21...集合更新,一共分了三步进行的操作: 1. 把数据库存在的但是传进来的数据里没有的城市删掉 2. 把数据库没有的而传进来的数据里有的数据进行添加操作,其实这里只判断id为0即可 3....在ASP.NET Core里,使用Linq来动态组建一个查询的表达式(IQueryable,可以创建表达式树),它是延迟执行的,直到各种条件都判断完了并组建出最终的查询表达式之后才去执行(查询数据库...使用了这个参数类代替了之前的pageIndex和pageSize参数,因为ASP.NET Core足够智能,可以把这两个参数解析到这个类里面。 下面测试一下: ?...代码在这:https://github.com/solenovex/ASP.NET-Core-2.0-RESTful-API-Tutorial 项目有一些文件的拜访目录可能不对,暂时先处理。

    1.3K10

    精:为Newtonsoft.Json实现一个属性支持多别名的契约解释器

    大家也许知道使用Newtonsoft.Json反序列化json为对象的时候,如果json的key和对象的属性名匹配,可以使用[JsonProperty]给属性配置别名,但是JsonProperty有个缺点...,使用的时候为JsonConvert配置JsonSerializerSettings指定ContractResolver用我们自己实现的即可,同时我们再实现一个对标JsonProperty的Attribute...很容易得到类的所有成员信息,然后找到成员中被FallbackJsonPropertyAttribute标记的成员,检查有几个别名,把多余的别名挨个做解析就可以了,将别名属性添加到List,...= JsonConvert.DeserializeObject(json3); 还不过瘾?...本文的功能也早已集成到了开源项目:Masuit.Tools,大家有需要也不必抄代码了,直接装nuget包即可。

    73720

    近期开发遇到的问题总结

    最近准备把后台管理系统重新设计开发下,使用了bootstrap,在网上找了个漂亮的后台模板:sb2-admin,在使用遇到了不少问题,总结下,以免以后忘记。...1、EF5利用NuGet升级到EF6后,一些Attribute冲突[未解决]:       原先的数据驱动使用的是Fluent Nhibernate +Nhibernate+MSSQL2005...“System.ComponentModel.DataAnnotations” 这个命名空间同时存在于2个dll,原先的想法很简单,不引用就好了,可删除引用后,还是提示冲突。...3、在使用Web Api的时候,返回类型序列化冲突: 因为用的新模板很炫,想把数据请求都使用Web Api来进行,但在使用的时候,返回的json数据,都返回了k_BackingField...,这下傻了,查看了文档,说在属性或者字段标记使用DataContactAttribute和DataMemberAttribute,试了以后,发觉还是不行。

    867100

    从壹开始学习NetCore 44 ║ 最全的 netcore 3.0 升级实战方案

    当然不仅仅包括下边的这几点,还在慢慢更新,如果你使用到了 blog.core 项目中没有用到的技术,并且自己在更新 3.0 的时候出现了问题,可以和我聊聊,在下边补充下,争取达到一个最全的解决方案合集...Worker Service 模板,为开发做服务或监控微服务相关Bus Microsoft.Data.SqlClient:独立存在于.NET Framework和.NET Core ReadyToRun...3、宿主机变化(Program.cs) netcore 3.0,对 host 做了调整,底层没有发生太多的变化,这里细说,主要说要修改的地方,更新的内容,我会在视频里,详细给大家讲解。...,而作为改善 ASP.NET Core 共享框架的工作的一部分,已从 ASP.NET Core 共享框架删除Json.NET 。...,具体的使用方法请看: 1、如果使用 .net core 3.0 内置的 System.Text.Json ,配置方法如下: services.AddMvc().AddJsonOptions(options

    86910

    从壹开始学习NetCore 44 ║ 最全的 netcore 3.0 升级实战方案

    当然不仅仅包括下边的这几点,还在慢慢更新,如果你使用到了 blog.core 项目中没有用到的技术,并且自己在更新 3.0 的时候出现了问题,可以和我聊聊,在下边补充下,争取达到一个最全的解决方案合集...6、Worker Service 模板,为开发做服务或监控微服务相关Bus 7、Microsoft.Data.SqlClient:独立存在于.NET Framework和.NET Core 8、ReadyToRun...3、宿主机变化(Program.cs) netcore 3.0,对 host 做了调整,底层没有发生太多的变化,这里细说,主要说要修改的地方,更新的内容,我会在视频里,详细给大家讲解。...ASP.NET Core 共享框架的工作的一部分,已从 ASP.NET Core 共享框架删除Json.NET 。...,具体的使用方法请看: 1、如果使用 .net core 3.0 内置的 System.Text.Json ,配置方法如下: services.AddMvc().AddJsonOptions(options

    1.1K10
    领券