取消嵌套命名空间 c# visual studio

unnesting namespace c# visual studio

我有一个嵌套的命名空间 DO 作为一个大项目的一部分。

namespace IDAL
{
    namespace DO
    {
        public struct MyStruct
        {
            // Code
        }
    }
}

我需要将 IDAL 命名空间的名称更改为 DalApi,并将嵌套命名空间 IDAL.DO 的名称更改为 DO

第一部分使用 Visual Studio 重命名 选项非常简单。

我 运行 第二部分难度更大。我无法使用 Rename 选项来提取命名空间并使其成为非嵌套命名空间。

我试过像这样删除外部命名空间,

    namespace DO
    {
        public struct MyStruct
        {
            // Code
        }
    }

但是我需要开始修复引用命名空间的所有时间(即 IDAL.DO.WeightCategory - WeightCategory 是一个枚举需要更改为 DO.WeightCategory 只是为了举一个例子).虽然这似乎可行,但似乎有很多困难的工作可能有更简单的解决方案。

我尝试使用 Ctrl+H 搜索和替换功能来尝试替换发生这种情况的所有实例,但它似乎没有解决问题(它被设置为替换整个解决方案)。

是否有 Visual Studio 2019 工具,我可以轻松地将嵌套命名空间更改(重构)为非嵌套命名空间?

是否还需要更改有效命名空间IDAL.DO?如果不是,您可以像这样简单地切换到完全限定的命名空间:

namespace IDAL.DO
{
    public struct MyStruct
    {
        // Code
    }
}

如果您确实想将整个命名空间更改为简单的 DO,那么重构工具确实是您需要使用的工具。以下链接应该可以帮助您开始这方面的工作:

https://dev.to/gopkumr/adjust-namespaces-automatically-visual-studio-2019-1f0b https://docs.microsoft.com/en-us/visualstudio/ide/refactoring-in-visual-studio?view=vs-2022 https://docs.microsoft.com/en-us/visualstudio/ide/reference/extract-method?view=vs-2022 https://docs.microsoft.com/en-us/visualstudio/ide/reference/move-type-to-matching-file?view=vs-2022

从 Visual Studio 开始,将光标放在 MyStruct 上,在其上执行 CTRL+.

然后只需单击“移动到名称空间...”并写入您想要的任何名称空间,VS 将处理其余部分: