我需要从exe文件中调用一个方法
ProcessStartInfo startInfo = new ProcessStartInfo(@"exeParser.exe");
startInfo.WindowStyle = ProcessWindowStyle.Normal;
startInfo.CreateNoWindow = false;
startInfo.RedirectStandardOutput = true;
startInfo.UseShellExecute = false;
startInfo.Arguments = ??
我不知道如何调用方法并传递参数
请帮忙吗?
可执行文件是我的,但我在使用Web应用程序中的内容时遇到问题,所以我认为将其称为进程更好
由于
答案 0 :(得分:1)
可执行文件只有一个通常称为“Main”的入口点。
要调用特定方法,应用程序必须为方法名称及其参数公开命令行参数(或多个)。这意味着更改应用程序以解释这些参数并调用适当的方法。
您需要修改“exeParser”以接受参数,然后对这些参数采取行动。
例如,您可以添加:
\ method [name] \ arguments [1],[2],[3]
然后解析它以获取名称和参数列表。
如果您只有一两种方法,则可以对开关进行硬编码:
switch (methodName)
{
case "add":
result = this.Add(arg1, arg2);
break;
case "subtract":
result = this.Subtract(arg1, arg2);
break;
default:
break;
}
如果您有更多或想要使代码更通用,那么您需要使用反射来获取方法并调用它。
答案 1 :(得分:0)
除非方法在程序集中公开,否则不能。
当然,如果可执行文件是一个没有混淆的.NET .exe,那么大概你可以使用像Reflector之类的东西来反汇编代码并在你的程序中复制它(不推荐),但你必须检查合法性如果您不拥有相关的可执行文件,请执行此操作。