【问题标题】:Pass Objects Between different Applications - Delphi XE4在不同的应用程序之间传递对象 - Delphi XE4
【发布时间】:2014-04-01 23:36:01
【问题描述】:

我想知道如何在两个不同的应用程序之间发送和接收作为“TPerson”的对象。

可以使用 DataSnap 吗?还有其他方法吗?

谢谢。

【问题讨论】:

标签: delphi delphi-xe4


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    ToString() 和 FromString() 通常可以使用 RTTI 编写。或者可以简单地在类中编码旧方式。 JSON 或 XML 库也可以提供帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-18
      • 2021-12-25
      • 2018-11-11
      • 2012-02-10
      • 2020-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多