我在 .Net 6 中創建了一個非常簡單的 ASP.Net WebAPI 專案。鑒于此控制器方法:
[HttpPost]
public async Task DoStuff(MyClass input)
{
// snip
}
MyClass看起來像這樣:
public class MyClass
{
public string MyData { get; set; }
}
將此發布到DoStuff以前版本的 ASP.Net 中允許使用的方法:
{
MyData: null
}
但是,現在它會給出 400 回應,除非我將 MyData 宣告為 astring?而不是 a string。我的問題是MyClass類不能改變,所以我不能更新MyData為 type string?。有沒有辦法禁用 ASP.Net 對 MyClass 屬性執行的自動 null 驗證?添加<Nullable>disable</Nullable>到 WebAPI 專案的 csproj 檔案似乎沒有做任何事情。我當前的 csproj 看起來像這樣:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<Platforms>x64</Platforms>
<Nullable>disable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<NoWarn>1701;1702;1591</NoWarn>
<UserSecretsId>MyProject</UserSecretsId>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.3" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\AnotherProject.csproj" />
</ItemGroup>
</Project>
uj5u.com熱心網友回復:
這是 C# 8 的一個特性,可為空的參考型別,在 .NET 6 中它們默認啟用。要關閉它,請在您的 csproj 檔案中添加此行<Nullable>disable</Nullable>。例如:
<PropertyGroup>
<Nullable>disable</Nullable>
</PropertyGroup>
另外,如果 MyClass 在另一個專案中,也添加<Nullable>disable</Nullable>到那里。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/437695.html
下一篇:如何從派生類呼叫建構式
