禁用Resharper的特定文件的“调整命名空间”

时间:2015-06-22 13:48:23

标签: c# visual-studio namespaces resharper

我的类名称空间与项目的文件夹结构不匹配。

使用// ReSharper disable once CheckNamespace我可以禁用命名空间与文件位置不对应的提示。但是,当重构项目名称空间时,仍然会选择该类来调整名称空间。

有没有办法禁用adjust名称空间?

使用示例更新:

在我的情况下,我有一个必须在System.Web.Mvc - 命名空间中的视图类。 文件位置为[Root]> src> Views Root项目的默认名称空间为Com.xxxxx.Commons.Web

因此,Resharper总是希望将命名空间调整为 如果我在Views文件夹中禁用namespace-provider-flag,则Com.xxxxx.Commons.Web.ViewsCom.xxxxx.Commons.Web

3 个答案:

答案 0 :(得分:5)

不幸的是,#{3}}长期存在bug in R# {&#34}"调整命名空间"重构。据我所知,没有其他方法可以从重构中排除特定文件。

答案 1 :(得分:3)

您可以通过打开要排除的文件夹的属性窗口(右键单击 - >属性)并将Namespace Provider更改为false来禁用该文件夹作为命名空间提供程序。

答案 2 :(得分:0)

ReSharper的Adjust Namespace重构不再影响标有// ReSharper disable CheckNamespace的命名空间。 ReSharper 2016.2修复了long-existing bug in ReSharper (@ ulrichb旧答案中引用的链接)

限制(目前,自ReSharper 2018.1起)

  • 如果根本没有命名空间,即使为该文件指定了disable CheckNamespace,ReSharper也会自动添加命名空间。

例如,这有效:

// ReSharper disable once CheckNamespace
namespace DoNotAdjustThisNamespace
{
    public class TestClass1
    {
    }
}

然而,这不是:

// ReSharper disable once CheckNamespace
public class TestClass1
{
}
  • 仍存在误导性的UI问题,其中所有文件仍显示在“调整命名空间”UI中,但命名空间更改实际上不会发生。这有点误导......