AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Objekt serialisieren

Ein Thema von Andreas L. · begonnen am 27. Jul 2010 · letzter Beitrag vom 27. Jul 2010
 
Andreas L.
(Gast)

n/a Beiträge
 
#1

Objekt serialisieren

  Alt 27. Jul 2010, 12: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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz