TypeAttribute用于静态类

时间:2015-11-10 19:36:25

标签: c# .net reflection types reflection.emit

我正在尝试通过Reflection.Emit定义新类型,但我无法找到将TypeAttribute定义为static类型的{{3}}。

例如,让我们说我想创建以下类型:

public static class Hello
{
}

我可以识别以下属性:

TypeAttributes.Class
TypeAttributes.Public

但与

有何不同
public class Hello
{
}

我想也许可以添加TypeAttributes.Abstract(因为无法实例化它),但我对此并不确定,因为抽象类完全不同。

1 个答案:

答案 0 :(得分:3)

您可以使用反射来查看c#编译器在每种情况下将生成的内容。

public class Program
{
    public static void Main()
    {
        Console.WriteLine(typeof(StaticClass).Attributes);
        Console.WriteLine(typeof(NotStaticClass).Attributes);
    }
}

public static class StaticClass { }

public class NotStaticClass { }

将产生:

AutoLayout, AnsiClass, Class, Public, Abstract, Sealed, BeforeFieldInit

AutoLayout, AnsiClass, Class, Public, BeforeFieldInit