ReSharper调整/重构命名空间不尊重包含空格的文件夹

本文关键字:包含 空格 文件夹 调整 重构 命名空间 ReSharper | 更新日期: 2023-09-27 18:25:47

我正在尝试用ReSharper 8.2重构我的项目中的名称空间。我使用的是Refactor->Adjust Namespaces选项,它非常棒,但当项目中的文件夹有空间时,它似乎不起作用。采用此项目结构(VS):

Project
   |
   |-Some Folder
       |
       |-ASubFolder
          |
          |-CodeFile.cs

我在CodeFile.cs中的新名称空间将是Project.ASubFolder,而如果我有这种结构

Project
   |
   |-SomeFolder
       |
       |-ASubFolder
          |
          |-CodeFile.cs

命名空间被适当地重命名为Project.SomeFolder.ASubFolder。我已检查所有文件夹上是否都设置了Namespace provider属性。重构时,如何强制R#使用带有空格的文件夹?

编辑:我在第一个场景中的预期输出是Project.SomeFolder.ASubFolder。我希望ReSharper只是删除空间。

ReSharper调整/重构命名空间不尊重包含空格的文件夹

命名空间中不能有空格(即Project.Some Folder.ASubFolder无效)。

因此,无论ReSharper在这种情况下做了什么(例如忽略空格),最终都会导致文件夹结构和命名空间不匹配。如果文件夹名称包含空格,则完全忽略该名称似乎与任何其他解决方案一样合理。

文件夹名称中有空格只会给您将来使用其他工具带来问题,因此最好尽可能避免。

我的团队最终解决这个问题的方法是用下划线替换文件夹名称中的空格。

因为VisualStudio约定是在文件夹中存在空格的命名空间中使用下划线,所以任何已经使用正确命名空间的类都不必更改。由于空间已经消失,我们可以自由地运行ReSharper的Fix Namespaces,以对其余类实现相同的结果。