在两个独立的应用程序之间传输对象(C#)

时间:2010-04-07 21:03:48

标签: c# oop object data-transfer transfer

是否可以将对象从一个应用程序传输到另一个应用程序(在C#中)?

我正在使用CAD API。该API的初始化需要几秒钟(10 - 15)。如果我只能在App1中初始化对象一次,并在需要时从App2调用它,那就太好了。

有什么想法吗?谢谢!

3 个答案:

答案 0 :(得分:6)

您可以通过Serializing您的对象执行此操作,并使用任何形式的Interprocess Communication传输数据,然后在另一端反序列化。

Windows Communication Foundation特别适合这种情况,并为您处理大部分管道。

答案 1 :(得分:1)

虽然里德的建议非常好,但可能不是唯一值得考虑的可能性。初始化10-15秒是相当长的一段时间。它可能正在初始化一些相当大的复杂数据结构,这些结构可能需要很长时间才能序列化和反序列化。如果是这样,可能值得考虑另一种可能性,例如创建一个进程外COM(或DCOM)服务器作为CAD API的前端,然后让App1和App2同时使用该服务器一个地方。这将意味着编组和解组您从CAD API发送/接收的所有数据,但取决于涉及的数据量和(特别是)您需要切换App1与App2使用的数据的频率,它可能仍然有较低的开销。

答案 2 :(得分:1)

在我看来,更简单的可能性是使用共享内存。这是Windows下进程间通信的常用机制。您可能需要查看the linked CodeProject article