Thema: Delphi Objekt serialisieren

Einzelnen Beitrag anzeigen

Andreas L.
(Gast)

n/a Beiträge
 
#1

Objekt serialisieren

  Alt 27. Jul 2010, 11:30
Hallo,

ich möchte alle published-Eigenschaften eines Objekts in einer Client/Server-Anwendung vom Server zum Client schicken. Die Kommunikation erfolgt über IdHTTpServer (im Server) und IdHTTP (im Client). Die Daten !müssen! als String übertragen werden. Ich möchte mir den Aufwand ersparen alle Eigenschaften einzeln in ein eigenes Format (z. B. XML, INI, etc.) zu kopieren (derzeit über 50 Properties, zu viel Tipparbeit...). Also wollte ich die Komponente in einen Memory-Stream speichern, diesen mit TIdEncoderMIME in einen MIME-String kodieren und in einem StringStream abspeichern. Will ich den StringStream nun in einen TMemo ausgeben, bleibt das Feld leer. Eine Fehlermeldung erscheint nicht. Was mache ich falsch? Hat jemand vllt. eine elegantere Lösung dafür? Wichtig ist nur, dass es so einfach wie möglich zum umsetzen ist (ich habe keine Zeit 2 Wochen an einen Serialiszer zu arbeiten...). Schon mal vielen Dank

Mein Test-Code:
Delphi-Quellcode:
type
  tmyobject = class(TComponent)
  private
    F1: String;
    f2: Int64;
  published
    property prop1: String read f1 write F1;
    property prop2: Int64 read f2 write f2;
  end;

...
...

procedure TForm7.Button1Click(Sender: TObject);
var
  obj: tmyobject;
  source: TMemoryStream;
  dest: TStringStream;
begin
  obj := tmyobject.Create(Self);
  obj.prop1 := 'Hallo, Welt!';
  obj.prop2 := 42;

  source := TMemoryStream.Create;
  source.WriteComponent(obj);

  dest := TStringStream.Create;

  IdEncoderMIME1.Encode(source, dest);

  memo1.Lines.LoadFromStream(dest);
end;
Grüße,
Andreas
  Mit Zitat antworten Zitat