Process 从exe文件运行方法
我需要从exe文件调用一个方法Process 从exe文件运行方法,process,exe,system.diagnostics,Process,Exe,System.diagnostics,我需要从exe文件调用一个方法 ProcessStartInfo startInfo = new ProcessStartInfo(@"exeParser.exe"); startInfo.WindowStyle = ProcessWindowStyle.Normal; startInfo.CreateNoWindow = false; startInfo.RedirectStandardOutput = true; start
ProcessStartInfo startInfo = new ProcessStartInfo(@"exeParser.exe");
startInfo.WindowStyle = ProcessWindowStyle.Normal;
startInfo.CreateNoWindow = false;
startInfo.RedirectStandardOutput = true;
startInfo.UseShellExecute = false;
startInfo.Arguments = ??
我不知道如何调用方法和传递参数
有什么帮助吗
可执行文件是我的,但我在使用web应用程序中的东西时遇到问题,所以我认为最好将其称为进程
谢谢您不能,除非该方法在程序集中公开
当然,如果可执行文件是一个未模糊处理的.NET.exe,那么您可能会使用类似Reflector的东西来反汇编代码并在程序中复制它(不推荐),但如果您没有相关的可执行文件,您必须检查这样做的合法性 可执行文件只有一个入口点,通常称为“Main” 要调用特定方法,应用程序必须为方法名及其参数公开一个(或多个)命令行参数。这意味着更改应用程序以解释这些参数并调用适当的方法 您需要修改“exeParser”以接受参数,然后对这些参数执行操作 例如,您可以添加: \方法[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;
}
如果您有更多或想要使代码更通用,那么您需要使用反射来获取方法并调用它。我已经多年没有编译上一个.exe了,所以我可能错了,但这可能吗?我真的不这么认为。这就是我想做的。我正试图从项目中调用此exe。发送参数并获得结果。@Lily-然后您需要找出
exeParser
接受哪些参数。你有它的文档吗?我自己创建的,所以我可以让它接受任何东西。我将它用于Proxem Antelope api,我不知道如何返回结果,因为main只返回voidString result=process.StandardOutput.ReadToEnd();如果main只返回,我不知道结果来自哪里void@Lily-您需要修改程序以接受可用于调用特定方法的参数。要获得输出,最简单的方法可能是将其写入exeParser
中的文件,然后在调用程序中读取该文件。