System.Reflection.TargetParameterCountExeception:参数计数不匹配
本文关键字:不匹配 参数 Reflection TargetParameterCountExeception System | 更新日期: 2023-09-27 18:34:19
System.Resources.ResourceManager ResManager
= new System.Resources.ResourceManager(
"derp",
System.Reflection.Assembly.GetExecutingAssembly());
byte[] cmBytes
= System.Convert.FromBase64String((string)ResManager.GetObject("cFile"));
/*BinaryWriter bw1
= new BinaryWriter(new FileStream("test.exe", FileMode.Create));
bw1.Write(cmBytes);
bw1.Flush();
bw1.Close();*/
Assembly asm = Assembly.Load(cmBytes);
MethodInfo mi = asm.EntryPoint;
object go = asm.CreateInstance(mi.Name);
mi.Invoke(go, null);
错误指向mi.Invoke(go, null)
,我在这里被难住了。
在这种情况下,入口点采用参数 - 正如异常所建议的那样(可能是字符串列表),所以显然你不能在没有参数的情况下调用它(null
作为第二个参数)。尝试:
mi.Invoke(go, new object[] { new string[0] } );
请注意,这当然仅适用于具有接受字符串列表的入口点的程序集。根据要运行的程序集的类型,您可能希望向其添加更多逻辑。您还可以在程序集中static void Main()
,以便您的版本正常工作。