同一个类的两个名称空间

时间:2014-04-01 10:48:20

标签: c# namespaces

我们正在更改产品的名称,因此我还想重命名我们的名称空间 框架类。但现在我遇到了问题,我不知道在哪些程序和脚本中使用了我们的命名空间。在c#中有没有办法在两个不同的命名空间中找到相同的类?

我知道解决方案,我可以从新命名空间中的类继承,但我认为这是一个非常糟糕的解决方案。所以我不知道如何解决这个问题,因为简单地重命名所有名称空间并没有帮助,并且会造成很多麻烦。

谢谢!

2 个答案:

答案 0 :(得分:1)

如果外部脚本使用旧的命名空间名称引用程序集,那么这些名称必须保留在程序集中,以便继续使用这些脚本。如果您还想创建新的命名空间名称以反映产品的新名称,那么这些名称也需要硬编码到您的程序集中。这将不可避免地导致问题!

我会推荐以下其中一项:

  1. 保留命名空间名称。
  2. 完整地重命名命名空间并同时更新Python脚本。
  3. 我绝对不会推荐人造遗产'方法,或导致装配中重复的任何其他解决方案。

答案 1 :(得分:1)

当然,您可以搜索整个项目/解决方案,但如果您拥有的不仅仅是一个微不足道的项目,那么这似乎有点麻烦和耗时。

你在使用Resharper吗?对于这种类型的任务,你绝对应该。如果是这样的话,这有可能至少可以帮助你:

  • 在Visual Studio解决方案资源管理器中重命名源文件所在的文件夹(理论上这应该比逐个查看每个源文件更容易,对吧?)。
  • 现在打开一个源文件,由于重命名的文件夹,您知道它将具有错误的命名空间。它应该显示为蓝色波浪线,如下图所示。
  • 使用Resharper提示(左侧金字塔或Alt + Enter)打开下面显示的上下文meny thingy。
  • 选择在范围内查找此类型的所有问题,然后选择解决方案作为范围。这可能至少可以帮助您概述更改命名空间所需的类,并通过它们系统地更改它们。

enter image description here

至于你的脚本,我猜你最好的选择是对旧命名空间进行纯文本搜索 - 可能是搜索和替换。也许您可以在VS解决方案中包含脚本,并使用内置的搜索来扫描和修复它们。这至少可以缓解疼痛......