我有一个C#应用程序,我想从我的app调用一个函数名称,例如SendChatMessage(string message,int userid)。但是这个函数属于我计算机上另一个运行的基于客户端/服务器的应用程序。我找不到如何做到这一点的方式。
我尝试使用Reflection库进行此操作但失败了。希望有人帮助我。
感谢您的帮助。
答案 0 :(得分:15)
欢迎来到Inter-process communication的世界。有很多方法可以做到这一点,比如命名管道,RPC,共享内存等等。
简而言之,您的程序正在进程中运行。另一个程序在另一个进程中运行。这就像你父亲试图向隔壁男孩询问一些东西。这些进程可以相互通信并调用彼此的方法,或者使用彼此的数据。但不是随意或过程。他们需要一些共同的沟通标准。
看看这些问题:
What is the simplest method of inter-process communication between 2 C# processes?
What is the best choice for .NET inter-process communication?
What is the easiest way to do inter process communication in C#?
答案 1 :(得分:1)
如果您无法控制目标进程中的代码,那么听起来您需要使用DLL注入方法将代码注入其中。
如果呼叫过程不需要确认或响应;然后注入执行方法调用代码的代码可能会浮出水面,但如果需要响应,则可能需要在注入的代码中实现某种形式的进程间通信。