我正在使用Reflection.Emit生成一个动态程序集,并且一切正常,但是由于以下代码,生成的类被标记为internal sealed

var typeBuilder = moduleBuilder.DefineType("MyNamespace.Program", TypeAttributes.Class | TypeAttributes.Sealed);


我没有任何暗示TypeAttributesstatic成员。这似乎不只是编译器的便利,因为我可以看到手动编写的类在反射器工具中显示为static

如何将自己的类型标记为静态?

最佳答案

使用以下命令使其正常工作:

var builderType = builderModule.DefineType("MyNamespace.Program", TypeAttributes.Class | TypeAttributes.NotPublic | TypeAttributes.Sealed | TypeAttributes.Abstract);


这给出了我想要的internal static

08-06 08:25