Asp.net core 抑制ASP.NET核心API方法的CA1026

Asp.net core 抑制ASP.NET核心API方法的CA1026,asp.net-core,visual-studio-2019,Asp.net Core,Visual Studio 2019,在我所有的ASP.NET核心控制器API方法中,我都会收到CA1026警告,因为我没有检查传入的参数。但是,我认为没有必要这样做,因为要么它是路由的一部分,因此没有它就无法调用该方法,要么它是主体的一部分,我在做任何事情之前检查ModelState是否有效 有没有办法告诉Visual Studio 2019对任何具有HttpPut、HttpGet等的内容抑制该消息。。。属性,因为它不是必需的?有几种方法可以抑制这些警告,但没有一种方法只能自动抑制某些方法或某些类型的方法。您可以执行以下操作: #

在我所有的ASP.NET核心控制器API方法中,我都会收到CA1026警告,因为我没有检查传入的参数。但是,我认为没有必要这样做,因为要么它是路由的一部分,因此没有它就无法调用该方法,要么它是主体的一部分,我在做任何事情之前检查
ModelState
是否有效


有没有办法告诉Visual Studio 2019对任何具有
HttpPut
HttpGet
等的内容抑制该消息。。。属性,因为它不是必需的?

有几种方法可以抑制这些警告,但没有一种方法只能自动抑制某些方法或某些类型的方法。您可以执行以下操作:

#pragma warning disable CA1026
[HttpGet]
public IActionResult Foo(string str)
{
    ...
}
#pragma warning restore CA1026

但是,你必须在个案的基础上这样做。任何其他选项,例如
SuppressMessageAttribute
将更全局地应用于特定控制器中的每个方法,例如,因为它只能变得非常精细。

我将为每个控制器添加一个存储库,并确保控制器只具有操作方法,因此,我可以抑制整个文件的警告。