是否可以将对象从一个应用程序传输到另一个应用程序(在C#中)?
我正在使用CAD API。该API的初始化需要几秒钟(10 - 15)。如果我只能在App1中初始化对象一次,并在需要时从App2调用它,那就太好了。
有什么想法吗?谢谢!
答案 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。