0

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

 ProcessStartInfo startInfo = new ProcessStartInfo(@"exeParser.exe");

        startInfo.WindowStyle = ProcessWindowStyle.Normal;
        startInfo.CreateNoWindow = false;
        startInfo.RedirectStandardOutput = true;
        startInfo.UseShellExecute = false;


        startInfo.Arguments = ??

我不知道如何调用方法和传递参数

请问有什么帮助吗??

可执行文件是我的,但我在使用网络应用程序时遇到了问题,所以我认为最好将其称为进程

谢谢

4

2 回答 2

1

可执行文件只有一个入口点,通常称为“Main”。

要调用特定方法,应用程序必须为方法名称及其参数公开一个(或多个)命令行参数。这意味着更改应用程序以解释这些参数并调用适当的方法。

您将需要修改您的“exeParser”以接受参数,然后对其采取行动。

例如,您可以添加:

\方法[名称] \参数[1],[2],[3]

然后解析它以获取参数的名称和列表。

如果您只有一种或两种方法,则可以对开关进行硬编码:

switch (methodName)
{
     case "add":
         result = this.Add(arg1, arg2);
         break;
     case "subtract":
         result = this.Subtract(arg1, arg2);
         break;
     default:
         break;
}

如果您有更多或想让代码更通用,那么您需要使用反射来获取方法并调用它。

于 2010-05-22T11:35:02.370 回答
0

您不能,除非该方法在程序集中公开公开。

当然,如果可执行文件是未混淆的 .NET .exe,那么大概您可以使用 Reflector 之类的东西来反汇编代码并将其复制到您的程序中(不推荐),但是您必须检查这样做的合法性如果您不拥有相关的可执行文件。

于 2010-05-22T11:34:54.270 回答