Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在.NET中进行应用程序内部通信_C#_.net_Windows - Fatal编程技术网

C# 如何在.NET中进行应用程序内部通信

C# 如何在.NET中进行应用程序内部通信,c#,.net,windows,C#,.net,Windows,将数据从一个Windows窗体应用程序(office插件)传递到另一个Windows窗体应用程序(用C#编写的exe)的最佳方法是什么 是最简单的方法之一。您可以在每个应用程序中注册一个服务端点,或者如果一个是服务,另一个是客户端,您可以只使用一个服务主机 实现这一点的方法有很多。我过去使用过命名管道。对命名管道的支持现在也内置到了.NET中(按照3.0?),因此它相当简单。我将大胆尝试一下,并说您可能希望office应用程序给您的exe打电话回家?在此上下文中,“exe”是服务器,而offic

将数据从一个Windows窗体应用程序(office插件)传递到另一个Windows窗体应用程序(用C#编写的exe)的最佳方法是什么

是最简单的方法之一。您可以在每个应用程序中注册一个服务端点,或者如果一个是服务,另一个是客户端,您可以只使用一个服务主机


实现这一点的方法有很多。我过去使用过命名管道。对命名管道的支持现在也内置到了.NET中(按照3.0?),因此它相当简单。

我将大胆尝试一下,并说您可能希望office应用程序给您的exe打电话回家?在此上下文中,“exe”是服务器,而office应用程序是客户端

如果您使用的是.NET3.0,WCF可能是您的最佳选择。我将把解决方案分为三个部分:

  • “共享合同”。这些是描述您的服务的接口。如果您有将在应用程序之间传递的自定义数据对象,则也应在此程序集中定义它们。此程序集在客户端和服务器之间共享。有关详细信息,请参阅“”
  • “服务”。此程序集是您的“exe”,它将引用合同并根据您的服务合同定义类。您的应用程序还将为您的服务托管一个ServiceClient。此应用程序的配置文件将定义如何向客户端公开ServiceClient(可作为web服务、tcp等提供)。有关详细信息,请参阅“”
  • “客户”。您的插件将引用“共享契约”程序集,并将包含基于契约的服务客户端。可以使用svcutil.exe工具自动生成客户端
  • “exe”和“plugin”都需要定义绑定的配置文件

    当您希望在客户端和服务器之间传递数据时,您的客户端将从“共享契约”程序集创建一个对象,并将其传递给服务客户端。客户端的配置文件将确定数据的发送位置


    有关如何创建基本WCF服务的分步教程,请参见。

    老派,但它很管用-

    是的。WCF是一条路要走。我建议您查看iDesign.net以使用InProcFactory类。您可以将office类填充到服务中,并调用承载服务的其他应用程序。然后,另一个服务可以回调到基于office的服务中

    您可以使用IPC端点,这将使通信更加快捷

    -斯科特