相关疑难解决方法(0)

在 ASP.Net 6 项目中禁用 null 验证

我在 .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)

c# c#-8.0 asp.net-core-6.0

12
推荐指数
2
解决办法
1万
查看次数

如何对解决方案中的所有文件禁用#nullable

我想将我的代码库迁移到可为空的引用。迁移策略之一包括#nullable disable向所有文件添加前缀。我怎样才能自动完成呢?

c# nullable-reference-types

4
推荐指数
1
解决办法
2110
查看次数