我想动态创建一些方法,它将接受单个参数 - 类 A 的实例,然后将在传递的 A 实例中执行方法 B。B 具有 int 类型的参数。所以这里是架构:
dynamicMethod(A a){
a.B(12);
}
这是我尝试过的:
DynamicMethod method = new DynamicMethod(string.Empty, typeof(void), new[] { typeof(A) }, typeof(Program));
MethodInfo methodB = typeof(A).GetMethod("B", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, new Type[] { }, null);
ILGenerator gen = method.GetILGenerator();
gen.Emit(OpCodes.Nop);
gen.Emit(OpCodes.Ldarg_0);
gen.Emit(OpCodes.Ldarg_S, 100);
gen.Emit(OpCodes.Call, methodB);
但是编译器告诉我 CLR 没有找到该方法。你能帮我吗?