重新排序使用并将它们保留在命名空间的外部

时间:2016-09-26 17:11:55

标签: c# visual-studio resharper stylecop

我们希望Reorder using statements并将{strong> 保留在namespace之外。 ReSharper在重新排序时将它们放在namespace内。

Visual Studio or Resharper functionality for placement of using directives询问如何将usings放入namespace.这不是我们想做的事情。答案建议转到ReSharper > Options > Code Editing → C# → Code Style → Add 'using' directive to the deepest scope。尽管未经选择,但在重新定位usings时,ReSharper会将使用内容放在namespace内。

enter image description here

我们如何Reorder using statements并将它们置于namespace之外?

我们尝试过的其他内容:

我们的StyleCop.Analyzers规则集包括以下指令相关规则:

SA1200 Using directives must be placed correctly
SA1208 System using directives must be placed before other using directives
SA1209 Using alias directives must be placed after other using directives
SA1210 Using directives must be ordered alphabetically by namespace

鉴于这些规则以及选项中的选择不会将usings添加到最深的范围",我们会在构建时收到以下警告:

SA1200 Using directive must appear within a namespace declaration.

我们如何配置ReSharper来强制使用指令必须在外部命名空间声明?

1 个答案:

答案 0 :(得分:4)

使用以下设置将stylecop.json添加到项目中:

{  
  "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json",
  "settings": {
    "orderingRules": {
      "usingDirectivesPlacement": "outsideNamespace"
    }
  }
}

然后,enable the use of stylecop.json编辑ProjectName.csproj文件,找到项目文件中的以下项目......

<None Include="stylecop.json" />

...并将定义更改为以下内容。

<AdditionalFiles Include="stylecop.json" />