我想知道字段固定是如何用.Net的IL语言表达的,所以我看了一下示例代码:
struct S
{
public fixed int buf[8];
}
S s = default(S);
public void MyMethod() {
fixed (int* ptr = s.buf){
*ptr = 2;
}
}
Run Code Online (Sandbox Code Playgroud)
这会生成IL:
.method private hidebysig instance void MyMethod () cil managed
{
// Method begins at RVA 0x2050
// Code size 25 (0x19)
.maxstack 2
.locals init (
[0] int32& pinned
)
IL_0000: ldarg.0 // Load argument 0 onto the stack
IL_0001: ldflda valuetype C/S C::s // Push the address of field of object …Run Code Online (Sandbox Code Playgroud) 我开始使用 .NET 5 中的源生成器来生成一些自定义序列化代码。这对于我的用例来说非常有效。不过,我还想以 JSON 文件的形式为所述序列化器创建自定义架构。不幸的是,我无法找到使用源生成器输出所述生成文件的方法。这有可能吗?或者也许我应该使用其他生成方法?