微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在.NET中执行应用程序内通信

在C#中将数据从一个Windows Forms应用程序(一个办公室插件)传递到另一个(用C#编写的exe文件)的最佳方式是什么?

Windows – 以编程方式检查托pipe的wlannetworking是否可能在系统的硬件上

运行Windows 7模拟器而不需要wddm 1.1

在VB.NET中,你如何得到当前Windows机器中所有用户的列表?

CoreAudio OnVolumeNotification事件订阅会导致explorer.exe中的cpu使用率过高

选项卡控制 – 更改为不同的forms(C#)

我会采取一个野蛮刺这个,并说你可能想办公室的应用程序打电话到您的exe文件在这种情况下,“exe”是服务器,办公室应用程序是客户端。

如果你使用.NET 3.0,WCF可能是你最好的选择。 我会把解决方案分成三部分:

“共享合同”。 这些是描述您的服务的接口。 如果您有自定义的数据对象将在应用程序之间传递,它们也应该在此程序集中定义。 该程序集在客户端和服务器之间共享。 有关更多信息,请参阅“ 设计服务合同 ”。

“服务”。 这个程序集是你的“exe”,它会引用合同,并根据你的服务合同定义类。 您的应用程序还将为您的服务托管一个ServiceClient。 这个应用程序的配置文件将定义你的ServiceClient将如何暴露给客户端(可作为Web服务,TCP等)。 有关更多信息,请参阅“ 实施服务合同 ”。

“客户”。 您的插件将引用“共享合同”程序集,并将包含基于合同的服务客户端。 客户端可以使用svcutil.exe工具自动生成

“exe”和“plugin”都需要定义绑定的配置文件

当你想在客户端和服务器之间传递数据时,客户端将从“共享合同”程序集创建一个对象,并将其传递给服务客户端。 客户端的配置文件会计算出数据的发送位置。

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

.NET中的进程间通信

对。 WCF是要走的路。 我建议检查iDesign.net使用InProcFactory类。 您可以将您的办公室课程放到一个服务中,然后调用您正在托管服务的其他应用程序。 其他服务可以回到基于办公室的服务。

您可以使用IPC终端,这将使通信迅速。

斯科特

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

查看入门教程。

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

老派,但它的工作原理 – 使用WM_copYDATA在Windows应用程序之间发送消息

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐