0

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

public class Foo
{
    public enum Views
    {
    }
}

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


我将我的解决方案移至下面的答案。

4

2 回答 2

3

请参阅本文末尾的示例,它完全符合您的要求。(您使用具有正确参数的 DefineNestedType)

于 2009-04-30T21:39:31.090 回答
1

将我的答案移动到这里。


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


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

于 2009-04-30T22:21:39.210 回答