我正在使用 ASP.NET Web Forms 制作 ERP。我不久前开始研究这个并成功完成了一个版本。我的项目的根命名空间是 EPERP。所以我有其他命名空间,如 EPERP.DataAccessLayer、EPERP.Controllers 等。
现在,由于客户的要求,我将我的项目分成了几个部分。我把代码层分成了一个部分,根据客户的需求把 View 层分成了多个部分。
丑陋的部分是,我通过在 Visual Studio 中打开空的 Web 应用程序项目,然后将相关的 View 文件复制到该项目中来做到这一点。这就是我将一个项目分成四个的方式。
由于我的代码部分是一个单独的项目,我所有与 View 相关的项目都引用了从该项目创建的 dll。
问题是,所有项目都具有相同的命名空间。因此,我的 View 相关项目具有根命名空间 EPERP,并且它们引用了具有根命名空间 EPERP 的 dll。
我的项目都没有相同的文件,但有时我在运行我的项目时遇到此错误,因为它在两个程序集中都指定了一个文件不明确。
无论如何,保持相同的命名空间是一个非常糟糕的决定。
如何更改项目的命名空间以使其也影响子命名空间?
最佳答案
这就是为什么我总是说ReSharper是所有 .NET 程序员必备的。
在您的帖子中,您没有提及使用第三种工具,因此请确保每个项目都有自己的默认命名空间(项目属性 -> 应用程序),然后右键单击解决方案 -> 重构 -> 调整命名空间。
ReSharper 将处理所有 using
由于新的命名空间需要。
如果您使用的是文件夹,它会像您预期的那样处理命名空间,例如:namespace MyNamespace.EPERP.MyFolder { ... }
会变成namespace MyNamespace.EPERP.MyNewModule.MyFolder { ... }
关于c# - 批量命名空间重命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32353020/