我可以提供更多详细信息,但不确定什么有用,因此如果需要,我将提供更具体的信息作为答复。
我有一个.NET Core 3.1项目,该项目正在使用Swashbuckle提供Swagger UI。它开始使用Swashbuckle.AspNetCore NuGet软件包版本5.0.0-rc4,并且一切正常。
我有一个使用Contract对象的控制器方法:
public async Task<IActionResult> Import([FromBody] Contract contract) {
这只是一个非常基础的类(我在进行故障排除时删除了所有内容,基本上只是:
public class Contract {
/// <summary>
/// Optional, summary
/// </summary>
public DateTime contractExpirationDate;
public DateTime date;
}
这一切都很好,Swagger UI在Schemas部分中显示了Contract及其所有详细信息,并显示在controllers部分中,并通过填写示例结构正确地开始了试用,等等。>>
一切都很好。。。直到我尝试进一步更新Swashbuckle.AspNetCore ...只要我按下5.0.0-rc5或转到5.0.0,或一直到最新(当前5.4.1),我立即遇到以下问题。
基本上,发生的是,Swagger仍在运行,并且一切似乎都很好,但是Contract模式现在显示为简单的{}。它将SEES作为模式进行签约,但是它为空,并且控制器Try it示例没有示例(它仅以{}作为请求正文),依此类推。如果我只是将Swashbuckle.AspNetCore更新回5.0 .0-rc4,然后立即重新运行它,它将再次起作用。
我确定我缺少一些明显的更改/更新,需要超越5.0.0-rc4,但是我花了很长时间试图弄清楚它是什么,而且我空白了。 。我的代码似乎与Microsoft网站上的所有示例都匹配,所以我不确定我缺少的内容。
我可以提供更多详细信息,但不确定什么有用,因此如果需要,我将提供更具体的信息。我有一个.NET Core 3.1项目,该项目正在使用Swashbuckle提供Swagger UI ....
[在5.0.0-rc4之后困扰您的问题是从Newtonsoft作为JSON库切换到System.Text.Json
,这在您的公共字段上表现有所不同。