为什么我不能使用 GcHandle.Alloc 来固定枚举数组

pma*_*rks 5 c# pinvoke

我想做以下事情:

public enum Blah
{
    A,B
}

[Test,Explicit]
public void TestEnumGcHandle()
{
    var ea = new Blah[10];
    GCHandle.Alloc(ea, GCHandleType.Pinned);
}
Run Code Online (Sandbox Code Playgroud)

但我得到:

System.ArgumentException : Object contains non-primitive or non-blittable data.
Run Code Online (Sandbox Code Playgroud)

.net 枚举是 blittable 类型吗?(Marshalling)声称 Enum 是 blittable,但我无法固定它们的数组。这可能是 GcHandle.Alloc 中的错误吗?我正在使用 .NET 3.5。