Resharper 是否对使用指令中用于程序集的别名感到困惑?

Is Resharper confused by Aliases used for Assemblies in Using directives?

我在我的 .cs 文件中注意到了这一点,看起来我可能是 "mixing metaphors" 或者至少是多余的,因为同时具有“Microsoft.Office.Interop”和我的 usings 指令列表中的“Microsoft.Office.Interop.Excel”:

using System.Runtime.InteropServices;
using MSExcel = Microsoft.Office.Interop;
using Microsoft.Office.Interop.Excel;

Resharper,在检查解决方案中的代码问题时,通常会标记未使用的 using 指令,但在这种情况下,它不会窥视 "using MSExcel = Microsoft.Office.Interop;",即使当我将其注释掉以查看会发生什么时,解决方案编译得很好 - 所以它愚弄了 Resharper,我猜。那么这是否意味着这是一个已知的 "hole in Resharper's swing" 并且我应该怀疑使用任何别名指令的必要性?

默认情况下,R# 选项 > C# > 命名空间导入中的这个选项是启用的:

Do not remove using alias directives if alias name differs from the imported type name

因为如果别名很重要,您可能有 R# 知识之外的原因。

禁用该选项会将指令显示为多余。