我在 .Net 6 中创建了一个非常简单的 ASP.Net WebAPI 项目。给定以下控制器方法:
[HttpPost]
public async Task DoStuff(MyClass input)
{
// snip
}
Run Code Online (Sandbox Code Playgroud)
看起来MyClass像这样:
public class MyClass
{
public string MyData { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
将其发布到DoStuffASP.Net 早期版本中允许使用的方法:
{
MyData: null
}
Run Code Online (Sandbox Code Playgroud)
string?然而现在,除非我将 MyData 声明为a 而不是 ,否则它会给出 400 响应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" …Run Code Online (Sandbox Code Playgroud) 我想将我的代码库迁移到可为空的引用。迁移策略之一包括#nullable disable向所有文件添加前缀。我怎样才能自动完成呢?