3

たとえば、次のようにオブジェクトをシリアル化する方法は次のとおりです。

unit u_Configuration;

interface

uses
  Classes,
  Generics.Collections,
  OmniXML,
  OmniXMLPersistent
  ;

type
  TMyObject = class (TPersistent)
    strict private
      fName : String;
    public
    published
      property Name: String read fName write fName;
  end;

  TConfiguration = class(TPersistent)
    strict private
      fTheList : TList<TMyObject>;
    private
    public
    published
      property TheList: TList<TMyObject> read fTheList write fTheList;

  end;

implementation

end.
4

1 に答える 1

2

OmniXMLは、TPersistentの子孫をシリアル化します。プロパティをシリアル化しますが、オブジェクトタイプを持つプロパティの場合、TPersistentの子孫のみがシリアル化されます。TListはTObjectの子孫であるTEnumerableの子孫であるため、修飾されません。OmniXMLには、TCollection用に組み込まれた特別な処理があります。

他のクラスを手動でシリアル化できます。

于 2013-02-25T19:05:48.243 に答える