我刚刚将我的ASP Web API项目从.Net core 2.0升级到3.0。我在用
services.AddMvc()
.AddJsonOptions(options =>options.SerializerSettings.ContractResolver
= new DefaultContractResolver());
Run Code Online (Sandbox Code Playgroud)
以前是为了确保序列化JSON的小写字母。
升级到3.0后,出现此错误...
错误CS1061'IMvcBuilder'不包含'AddJsonOptions'的定义,找不到可以接受的扩展方法'AddJsonOptions'接受类型为'IMvcBuilder'的第一个参数(是否缺少using指令或程序集引用?)
根据Asp.Net Core 2.2中MvcJsonOptions的AddJsonOptions,Microsoft.AspNetCore.Mvc.Formatters.Json nuget包提供了AddJsonOptions扩展方法。我尝试安装/重新安装此程序,但仍然无法解决该方法。有趣的是,智能感知仅显示Microsoft.AspNetCore.Mvc.Formatters。即使我添加了Json nuget包,当我尝试添加using语句时也使用Xml。
有什么想法吗?该文档为AddJsonOptions只上升到.NET 2.2所以也许是方法已经在3.0赞成一些其他配置机制的被弃用?
我的工作项目用asp.net core 2.1编写了很长时间,但是昨天,我被迫将其升级到.net core 3.0(由于2.1无法调用已经用3.0编写的Dll)。
因此,许多功能已过时或已被删除。我几乎解决了所有问题,但CORS出现了一个问题。
像我之前的许多人一样,我曾经:
app.UseCors(x => x
.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials());
Run Code Online (Sandbox Code Playgroud)
在Configure功能上。并services.AddCors()在ConfigureServices功能上。
我能与设置固定这很容易WithOrigins()或.SetIsOriginAllowed(_ => true)代替AllowAnyOrigin()不与工作了AllowCredentials()。
在那之后,我能够启动该应用程序,并且我认为一切都很好,但是直到现在为止,我一直陷在一个我不知道如何解决的问题上。
我有数据库关系N:N和关系表来处理该问题,这意味着我具有Admin具有AdminProject list属性的实体,然后又具有AdminProject具有Admin list和Project list属性的Project实体以及具有AdminProject list属性的实体。
当我列出某些管理员的项目时,我将在Controller this中返回return Ok(projects),我只getAll在AdminProject实体上使用,然后Select仅返回项目。
为此,我必须[JsonIgnore]在project / admin中使用创建json时不需要避免循环的属性。
这样说:现在,.NET CORE 3.0和CORS设置不起作用了。
我收到一个错误:
System.Text.Json.JsonException: A possible object cycle was …