.Net Core C# 错误地删除了在其他环境中使用的导入

问题描述 投票:0回答:1

我在控制器中有以下代码,允许在本地环境中不使用令牌进行身份验证,而在生产环境中需要 JWT 令牌进行身份验证:

enter image description here

“else”部分需要进行必要的导入才能使其工作。但是,它呈灰色,因为 Visual Studio 检测到它是未使用的导入(在本地环境中确实如此,但在为另一个环境进行编译时,它是工作所必需的)。

enter image description here

问题是有时我们会清理导入并删除那些未使用的导入。由于检测到此导入未被使用(实际上是必要的),因此进程将其删除。在为生产环境进行编译时,该操作会生成编译错误。

这是 Visual Studio 的错误吗?有没有办法避免这种情况,并强制使用该导入?或者重写“if DEBUG”语句的另一种方法,以便代码可以检测正在使用的导入?

c# visual-studio .net-core asp.net-core-mvc
1个回答
0
投票

using
指令是可选的:您始终可以完全限定名称空间,这在您有这样的编译时条件的情况下是谨慎的。

#else
    [Authorize(...)]

您还可以在代码中使用预处理器指令来禁用特定分析器建议(或 Resharper 规则,如果您正在使用的话),这样您就不会针对特定代码行获得此建议:

#pragma warning disable IDE0005
using Microsoft.AspNetCore.Authentication.JwtBearer;
#pragma warning restore IDE0005
© www.soinside.com 2019 - 2024. All rights reserved.