Process 从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

我需要从exe文件调用一个方法

 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
中的文件,然后在调用程序中读取该文件。