1

我想知道是否可以在编译时使用 Afterthought 向类添加属性。我知道 PostSharp 可以做到这一点,但事后思考,我只能看到属性的属性修改。我想做这样的事情。

[AddStructLayout]
class Foo
{
    float A;
    float B;
}

应该生成

[Struct;StructLayout(Explicit)]
class Foo
{
    [FieldOffset(0)]
    float A;
    [FieldOffset(16)]
    float B;
}

我的用例是将类上的 StructLayout 属性和 FieldOffset 属性添加到我的类中的字段,以以特定方式强制执行内存布局。确切的布局规则由方面决定。

谢谢约翰

4

0 回答 0