首页 > 解决方案 > 如何在 C# 中重构命名空间而不影响其他项目?

问题描述

我有一个 Nuget 包,我首先将我的大部分类和接口保存在基本命名空间中。随着时间的推移,默认命名空间已经变得杂乱无章,有许多彼此独立的类,我想将它们移到它们自己的命名空间中。例如,我想在不影响项目现有用户的情况下转换以下内容:

 namespace WebTestSuite
 {
     /// <summary>
     /// Public test result properties
     /// </summary>
     public interface ITestResult
     {
           /* Interface definition here */
     }
 }

至:

 namespace WebTestSuite.Results
 {
     /// <summary>
     /// Public test result properties
     /// </summary>
     public interface ITestResult
     {
           /* Interface definition here */
     }
 }

最终目标是允许我在我的项目中重构命名空间,当用户获得最新版本的包时,他们对 WebTestSuite.ITestResult 的引用将自动更新为 WebTestSuite.Results.ITestResult。

我想我可以编写一个迁移脚本,但不确定这是否有必要,或者是否有任何框架或任何可以使这更容易的东西。任何建议将不胜感激。

标签: c#namespacesmigrationrefactoringcompatibility

解决方案


你可以试试 Resharper。它将以最小的努力提供对代码重构的大量控制。使用 resharper,您可以遵循此指南


推荐阅读