所以我在.NET 中进行调试。我正在尝试从 dll 中调用带有 DynamicILInfo 的方法。但是我做错了什么?
delegate void assinv1();
private static void insert()
{
MethodInfo entryPoint = AppDomain.CurrentDomain.Load(File.ReadAllBytes(@"method.dll")).EntryPoint;
Type[] args = new Type[] { typeof(string[]) };
DynamicMethod dm = new DynamicMethod("assinv", null, null);
DynamicILInfo dynamicILInfo = dm.GetDynamicILInfo();
SignatureHelper localVarSigHelper = SignatureHelper.GetLocalVarSigHelper();
localVarSigHelper.AddArguments(args, null, null);
dynamicILInfo.SetLocalSignature(localVarSigHelper.GetSignature());
dynamicILInfo.SetCode(entryPoint.GetMethodBody().GetILAsByteArray(), entryPoint.GetMethodBody().MaxStackSize);
assinv1 d1 = dm.CreateDelegate(typeof(assinv1)) as assinv1;
d1();
}
}