我刚刚将我的ASP Web API项目从.Net core 2.0
升级到3.0
。我正在使用
services.AddMvc()
.AddJsonOptions(options =>options.SerializerSettings.ContractResolver
= new DefaultContractResolver());
以前是为了确保序列化 JSON 的较小大小写。
升级到 3.0 后,我收到此错误:
错误 CS1061 'IMvcBuilder' 不包含 'AddJsonOptions' 的定义,并且找不到可访问的扩展方法 'AddJsonOptions' 接受类型为 'IMvcBuilder' 的第一个参数(您是否缺少 using 指令或程序集引用?
根据Asp。Net Core 2.2 AddJsonOptions扩展方法由Microsoft.AspNetCore.Mvc.Formatters提供。Json是一个nuget包。我已尝试安装/重新安装此软件,但仍然无法解决此问题。有趣的是,intellisense仅显示Microsoft.AspNetCore.Mvc.Formatters。当我尝试添加using语句时,即使我添加了Json nuget包。
知道发生了什么吗?AddJsonOptions的文档只适用于。Net 2.2,所以在3.0中该方法可能已经被弃用,取而代之的是一些其他的配置机制?
确保安装了Microsoft.AspNetCore.Mvc.NewtonsoftJson包。
这在使用.Net Core 3
时对我有用:
services.AddMvc().AddJsonOptions(o =>
{
o.JsonSerializerOptions.PropertyNamingPolicy = null;
o.JsonSerializerOptions.DictionaryKeyPolicy = null;
});
作为ASP。NETCore3.0中,团队不再使用Json。默认情况下为.NET。您可以在关于中断对Microsoft.AspNetCore.App的更改的公告中了解更多信息。
ASP.NETCore 3.0和. NET Core 3.0没有Json.NET,而是包含了一个不同的JSON API,它更加关注性能。您可以在关于“JSON在. NET Core 3.0中的未来”的公告中了解更多信息。
ASP.NETCore的新模板将不再与Json.NET捆绑在一起,但是您可以轻松地重新配置项目以使用它而不是新的JSON库。这对于与旧项目的兼容性很重要,也因为新库不应该是一个完整的替代品,所以您不会在那里看到完整的功能集。
以便重新配置您的ASP。NET核心3.0项目与Json。NET中,您需要添加对Microsoft.AspNetCore.Mvc的NuGet引用。NewtonsoftJson
,它是包含所有必要位的包。然后,在启动的配置服务中
,您需要像这样配置MVC:
services.AddControllers()
.AddNewtonsoftJson();
这将设置 MVC 控制器并将其配置为使用 Json.NET 而不是新的 API。除了控制器之外,您还可以使用不同的 MVC 重载(例如,对于具有视图的控制器或 Razor 页面)。AddNewtonsoftJson
方法具有重载,允许您配置 Json.NET 选项,就像您在 ASP.NET Core 2.x中习惯于使用AddJsonOptions
一样。
services.AddControllers()
.AddNewtonsoftJson(options =>
{
options.SerializerSettings.ContractResolver = new DefaultContractResolver();
});
问题内容: 在batik的文档中,它显示了如何从类org.apache.batik.dom.svg.SVGDOMImplementation中获取DOM实现的实例。 但是,从同一站点下载Batik 1.8之后,我在任何地方都找不到此类。 我下载了1.7版本,并在batik-svg-dom.jar中找到了它,但它在1.8内的同一jar中不存在(或据我所知在该软件包中的任何jar中都不存在)。 此类已
问题内容: 我正在运行Mac OSX Snow Leopard。 我一直使用Mac OSX的常规软件更新功能来更新Java。 我过去使用Java 工具取得了巨大的成功。 今天早上,我像往常一样键入命令行。我收到以下错误: 所有的其他Java工具(,,等)的工作就好了。 确实不包含(突然)。 产量: WTF? 问题答案: 似乎是链接的混合;/ usr / bin / jvisualvm符号链接指向不
用于创建自己的令牌和字符过滤器的Solr文档说明如下。 http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#Specifying_an_Analyzer_in_the_schema 如果您想使用定制的CharFilters、Tokenizer或TokenFilters,您需要编写一个非常简单的工厂,将BaseTokenizerFa
我想写一个很小的“Hello World”J2ME MIDlet。在这样的示例中,中的类用于显示输出。当我尝试在Eclipse中编译它时,我得到错误, 无法解析导入javax.microedition.lcdui 我已经安装了JME SDK3.4,并且能够运行不导入javax.microedition.lcdui.*的MIDlet。我在某处读到lcdui可以从无线工具包中获得;Oracle表示,从
问题内容: 我正在将某些服务器代码从jersey 1.1版本移植到2.5.1,但似乎找不到JSONConfiguration。 是JAXB上下文解析器不再是Jersey 2.5的一部分,还是组ID已更改?还有另一种机制可以实现ContextResolver吗? 请帮忙。 问题答案: 这是一个愚蠢的问题。如果其他人面临完成港口的压力,我会回答。 删除了使用 JAXBContext 的Jersey /
我尝试将我的项目从JDK1.8迁移到Java9,但它无法编译。我的项目使用了很多类,但似乎没有这些类。他们是被搬到别处还是被弃用了?