我在控制器中有以下代码,允许在本地环境中不使用令牌进行身份验证,而在生产环境中需要 JWT 令牌进行身份验证:
“else”部分需要进行必要的导入才能使其工作。但是,它呈灰色,因为 Visual Studio 检测到它是未使用的导入(在本地环境中确实如此,但在为另一个环境进行编译时,它是工作所必需的)。
问题是有时我们会清理导入并删除那些未使用的导入。由于检测到此导入未被使用(实际上是必要的),因此进程将其删除。在为生产环境进行编译时,该操作会生成编译错误。
这是 Visual Studio 的错误吗?有没有办法避免这种情况,并强制使用该导入?或者重写“if DEBUG”语句的另一种方法,以便代码可以检测正在使用的导入?
using
指令是可选的:您始终可以完全限定名称空间,这在您有这样的编译时条件的情况下是谨慎的。
#else
[Authorize(...)]
您还可以在代码中使用预处理器指令来禁用特定分析器建议(或 Resharper 规则,如果您正在使用的话),这样您就不会针对特定代码行获得此建议:
#pragma warning disable IDE0005
using Microsoft.AspNetCore.Authentication.JwtBearer;
#pragma warning restore IDE0005