C# 如何重构文件名称空间?

C# 如何重构文件名称空间?,c#,visual-studio,automated-refactoring,C#,Visual Studio,Automated Refactoring,我有一个N层的项目,当我定义ContextBounderies时,我会在开发需要时更改它。例如,我有一门课: namespace Domain.Entities.Item public class ItemForSale { } 此类现在位于解决方案中的Entites/Item文件夹中。但是在开发过程中,我意识到这个类在Sell文件夹中更有意义,因此名称空间应该是namespace Domain.Entities.Sell。好吧,问题是我在许多层项目中有很多此类的引用,所以手工重构总是一件痛

我有一个N层的项目,当我定义ContextBounderies时,我会在开发需要时更改它。例如,我有一门课:

namespace Domain.Entities.Item
public class ItemForSale
{

}
此类现在位于解决方案中的
Entites/Item
文件夹中。但是在开发过程中,我意识到这个类在
Sell
文件夹中更有意义,因此名称空间应该是
namespace Domain.Entities.Sell
。好吧,问题是我在许多层项目中有很多此类的引用,所以手工重构总是一件痛苦的事情

有没有一种方法可以配置它,或者一些免费的扩展(resharper可以这样做,但不是免费的)来完成这项工作

Im使用Visual Studio 2015
谢谢

是的,这只是VS2015的一个功能。您可以右键单击要更改的名称空间,然后在下拉列表下选择“重命名”选项。它将更新解决方案内部的所有引用。因此,如果您的解决方案中有多个项目,它们都将用新名称更新


(还有一个键盘快捷键。您可以单击要更改的名称空间,然后按键盘上的F2键打开重命名菜单。)

如果问题不常见,则可以使用替换文件中的选项将所有旧名称空间替换为新名称空间。只需使用Crtl+Shift+H,填写适当的字段,然后选择查找选项来查找整个解决方案

您不必让名称空间与文件夹匹配。有些工具会让您知道是否存在不匹配,并为您提供修复它的选项,但这不是必需的。如果您要求使用工具重新命名,那么这显然与SO的主题无关。是的,但是当我在此文件夹内创建一个类时,VS会自动设置与当前文件夹匹配的命名空间。我知道您不希望“Resharper”作为答案,但它确实是答案。实际上,从VS2015开始,您无法重命名为多部分命名空间(在早期版本中,这在很大程度上起了作用)