小编tor*_*bor的帖子

如何在IL中表示固定

我想知道字段固定是如何用.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)

c# pinvoke cil

8
推荐指数
1
解决办法
203
查看次数

如何在 C#/ .NET 5 中生成非源文件(例如 json)

我开始使用 .NET 5 中的源生成器来生成一些自定义序列化代码。这对于我的用例来说非常有效。不过,我还想以 JSON 文件的形式为所述序列化器创建自定义架构。不幸的是,我无法找到使用源生成器输出所述生成文件的方法。这有可能吗?或者也许我应该使用其他生成方法?

.net c# sourcegenerators csharp-source-generator

3
推荐指数
1
解决办法
690
查看次数