2014-10-06 143 views
0

我试图重构的命名空间在我与ReSharper的8.2项目。我使用的是Refactor->Adjust Namespaces选项,这非常棒,但当项目中的文件夹中有空格时,它似乎不起作用。有了这个项目结构(VS):ReSharper的调整/重构命名空间没有用空格尊重夹

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只是删除空间。

+1

我实际上会期待'Project.Some_Folder.ASubFolder',因为这是在向文件夹添加新项目时在Visual Studio中使用的默认名称空间。 – 2014-10-30 18:57:46

+0

是的,即使这是有效的。只是一起删除名称不是行为国际海事组织。 – Brandon 2014-10-31 16:55:31

回答

2

你不能在一个命名空间中的空间(即Project.Some Folder.ASubFolder将是无效的)。

所以,无论ReSharper的在这种情况下(如忽略空格),你最终会与你的文件夹结构,您的命名空间之间的不匹配一样。如果文件夹名称中包含空格,则完全忽略文件夹名称与其他解决方案一样合理。

已经在文件夹名称中使用空格只是要引起未来,如果你能这样,最好避免你与其他工具的问题。

+0

我知道我在名称空间中不能有空格。对于顶部和底部场景,我对输出的期望是'Project.SomeFolder.ASubFolder'。我希望R#在重构时删除空间。 – Brandon 2014-10-07 12:30:48

+1

显然你对这个未定义行为的期望与R#的设计者不同。 – 2014-10-07 12:46:52

+0

这就是为什么我问这个问题。其实这就是为什么大多数人会提出问题的原因:“这发生了,我该如何解决它?”。 – Brandon 2014-10-07 14:06:15

2

的工作,在我的团队结束了使用这个问题是要替换空格用下划线文件夹名称。

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