在 C# 中使用 CodeDom 生成嵌套命名空间

Generating nested namespaces using CodeDom with C#

我想使用 CodeDom 生成一些代码,其中包含嵌套命名空间中的一些自定义枚举。

示例:

namespace Enums
{
    namespace MoreSpecificEnums
    {
         public enum AnEnum
         {
             FirstValue = 0,
             SecondValue = 1,
         }
    }
}

我可以很好地创建 Enums 命名空间,但我似乎无法弄清楚如何在其中添加 MoreSpecificEnums 命名空间。有人能指出我正确的方向吗?

        CodeNamespace enumNamespace = new CodeNamespace("Enums");
        compileUnit.Namespaces.Add(enumNamespace);
        CodeNamespace msEnumNamespace = new CodeNamespace("MoreSpecificEnums");
        // Now I'm stuck, where do I plug msEnumNamespace in?
        // enumNamespace doesn't have a Namespaces array like the compileUnit.

据我所知,你是对的,这是不可能的。

可以生成以下等效代码:

namespace Enums.MoreSpecificEnums
{
     public enum AnEnum
     {
         FirstValue = 0,
         SecondValue = 1,
     }
}