我想创建一个带有嵌套枚举的类。

public class Foo
{
    public enum Views
    {
    }
}

但是System.Reflection.Emit.TypeBuilder类没有DefineNestedEnum只有DefinedNestedType。 ModuleBuilder.DefineEnum存在,让我创建一个枚举,但我发现没有办法让它嵌套。我可以创建枚举而不伪造它(即使用EnumBuilder)吗?


我将我的解决方案移到了下面的答案中。

有帮助吗?

解决方案 2

移动我的回答我把问题放在这里。


我唯一能想到的是将嵌套类型定义为密封类,扩展System.Enum并使用常量值定义public | static | literal字段。这基本上是C#编译器基于我通过反汇编学到的东西所做的事情。如果我这样做并引用程序集,Intellisense会将其识别为枚举,并且就像枚举一样。


这正是MSDN显示Jeremy链接的方法。

其他提示

请参阅结尾处的示例这篇文章,它完全符合您的要求。 (您使用带有正确参数的DefineNestedType)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top