在不同的应用程序之间传递对象 - Delphi XE4

时间:2014-04-01 23:36:02

标签: delphi delphi-xe4

我想知道如何发送和接收对象" TPerson"在两个不同的应用之间

可以使用DataSnap吗?还有另外一种方法吗?

感谢。

2 个答案:

答案 0 :(得分:1)

无法跨进程边界传递对象。它们必须被序列化,例如使用COM或JSON。

答案 1 :(得分:0)

对象实例只是一堆内存。将此内存的转储从一个应用程序传递到另一个应用程序是没有意义的,即使两个应用程序都在同一台计算机上运行。

相反,您可以将源对象实例的属性值发送到接收应用程序,并将值应用于本地实例。

一个简单的方法是将ToString()和FromString()函数写入TPerson。从ToString获取字符串后,您可以使用任何通信方法将其传输到接收应用程序(例如,TCP / IP套接字,共享内存,电子邮件,FTP,HTTP或任何符合您需求的内容)。接收应用程序使用FromString方法初始化接收对象,并使用字符串中嵌入的值。

ToString()和FromString()可以通过RTTI一般编写。或者可以简单地编写类中的旧方法。 JSON或XML库也可以提供帮助。