是否有免费库允许在运行时将IL代码转换为C#?
谢谢, 基督教
修改
以下是我的例子:
在我的程序中,在某些时候我有一个字符串列表,类似于某个程序集中的类的IL代码:
// =============== CLASS MEMBERS DECLARATION ===================
.class public auto ansi beforefieldinit Probant.Arithmetics
extends [mscorlib]System.Object
{
.method public hidebysig instance int32
Sum(int32 a,
int32 b) cil managed
{
// Code size 11 (0xb)
.maxstack 2
.locals init ([0] int32 result,
[1] int32 CS$1$0000)
IL_0000: nop
IL_0001: ldarg.1
IL_0002: ldarg.2
IL_0003: add
IL_0004: stloc.0
IL_0005: ldloc.0
IL_0006: stloc.1
IL_0007: br.s IL_0009
IL_0009: ldloc.1
IL_000a: ret
现在有了这个字符串数组(每个字符串一行),我想以某种方式生成相应的C#代码。
是否有人知道这是否可以通过 ILSpy ?
实现答案 0 :(得分:0)
ILSpy使用Mono.Cecil读取输入程序集,然后使用Cecils中间表示。
如果您将IL作为文本而不是二进制文件,则必须找到可以将文本组装成汇编或至少组装到Cecils表示中的内容。
答案 1 :(得分:0)
据我所知:
public int Sum(int a, int b)
{
int result,CS$1$0000;
result = a + b;
CS$1$0000 = result;
return CS$1$0000;
}