Laden...

Variable to byte[]

Erstellt von Hunv vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.664 Views
Hunv Themenstarter:in
193 Beiträge seit 2005
vor 16 Jahren
Variable to byte[]

Hi

Ich suche derzeit nach einer einfachen Möglichkeit Variablen im allgemeinen - unabhängig vom Typ - in byte[] zu konvertieren. Mit String und int ist es einfach, aber ich habe auch Variablentypen, die aus beidem bestehen bzw. aus List<>s, Images etc.

Gibt es da eine Funktion, die das Framework bietet, oder muss ich jeden Wert manuell umwandeln?

Visit me @ www.beremote.net

Gelöschter Account
vor 16 Jahren

binary serialisieren.

2.760 Beiträge seit 2006
vor 16 Jahren

Mit Value types geht das mit Hilfe der Marshal-Klasse, bei Referenztypen bin ich mir da schon nicht mehr so sicher.
Eine Möglichkeit wäre die Objekte zu serialisieren. Der BinaryFormatter macht im Grunde nichts anderes als das von dir gewünschte.
Kommt halt auf die Anwendung an.

[EDIT]
Kommt das "Ein Beitrag wurde bereits erstellt... bitte lesen" nur bei der Vorschau?

S
8.746 Beiträge seit 2005
vor 16 Jahren

Ich suche derzeit nach einer einfachen Möglichkeit Variablen im allgemeinen - unabhängig vom Typ - in byte[] zu konvertieren.

Die Antwort ist abhängig vom Zweck. Also: Wozu?

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo jaensen,

Kommt das "Ein Beitrag wurde bereits erstellt... bitte lesen" nur bei der Vorschau?

das kommt immer dann, wenn zwischen dem Aufrufen des Editors und der Vorschau oder dem Absenden (egal was davon) mindestens ein anderer Beitrag erstellt wurde. Es kommt nicht, wenn zwischen dem Lesen des Threads und dem Aufrufen des Editors Beiträge erstellt wurden. Wobei dann diese neuen Beiträge natürlich unterhalb des Editors schon angezeigt werden.

herbivore

2.760 Beiträge seit 2006
vor 16 Jahren

Dann hab ichs also verplant 🤔 Öfter mal F5 drücken 😉

Hunv Themenstarter:in
193 Beiträge seit 2005
vor 16 Jahren

Ich suche derzeit nach einer einfachen Möglichkeit Variablen im allgemeinen - unabhängig vom Typ - in byte[] zu konvertieren.

Die Antwort ist abhängig vom Zweck. Also: Wozu?

Um es als byte-array über eine Socketverbindung zu verschicken - und anschließend wieder zurückzukonvertieren.

Visit me @ www.beremote.net

2.760 Beiträge seit 2006
vor 16 Jahren

Da nimm doch am coolsten die WCF falls möglich. Dafür ist dann eigentlich Serialisierung geeignet.

Hunv Themenstarter:in
193 Beiträge seit 2005
vor 16 Jahren

Da nimm doch am coolsten die WCF falls möglich. Dafür ist dann eigentlich Serialisierung geeignet.

Das passt ehr nicht so, da ich derzeit versuche noch fürs Framework 2.0 zu entwickeln und wcf ist dann 3.0, oder hab ich das falsch in Erinnerung?

Visit me @ www.beremote.net

Gelöschter Account
vor 16 Jahren

serialisierung geht mit 2.0 einwandfrei

Hunv Themenstarter:in
193 Beiträge seit 2005
vor 16 Jahren

und wie genau? ich habe bereits gesucht, aber nichts derartiges gefunden.

Klar, [Serializable()] - und weiter? desshalb ist ein Variablentyp nicht gleich ein byte[]

Visit me @ www.beremote.net

Gelöschter Account
vor 16 Jahren

:rtfm: hier unter serialisierung suchen. es gibt einfache beispiele zur xml und binary serialisierung. das ist nicht schwer und in ca. 5 zeilen code zu bewerkstelligen.

871 Beiträge seit 2005
vor 16 Jahren

Hallo,

ich hab mal vor einiger Zeit ein Example dafür erstellt: http://www.geocities.com/egon_rath/serialization.html

Serialisiert zwar binär in eine Datei, aber das sollte kein hindernis sein, da man vom benutzten MemoryStream ein byte[] bekommen kann.

Grüsse,
Egon

Hunv Themenstarter:in
193 Beiträge seit 2005
vor 16 Jahren

super cool! werd' ich heute abend mal testen. Danke!

Visit me @ www.beremote.net

3.971 Beiträge seit 2006
vor 16 Jahren

Zur Vervollständigung:
Was aber statt WCF in .NET 2.0 und höher geht ist Remoting. Ist ähnlich konfortabel wie WCF

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...

Hunv Themenstarter:in
193 Beiträge seit 2005
vor 16 Jahren

Was aber statt WCF in .NET 2.0 und höher geht ist Remoting. Ist ähnlich konfortabel wie WCF){gray}

Das wollten wir auch machen, nur leider wollen irgendwelche Sicherheitsmechanismen vom Framework nicht, dass wir das machen.
In Beispielprogrammen funktioniert es, in unserem dann nicht. Da die Socket-Verbindungen sich darum nicht so wirklich kümmern, war das unsere nächste Alternative, da wir einige Teile sowieso schon mit Sockets realisiert haben.

Visit me @ www.beremote.net

Gelöschter Account
vor 16 Jahren

moooooment.

warum beseitigt ihr nicht einfach die fehler?
stattdessen fängt ihr an zu frickeln. wenn es um die kommunikation zwischen dotnetprogrammen geht und das auch noch im intranet, dann ist remoting DAS mittel der wahl.

  1. einfach
  2. komfortabel
  3. unterstützt vom framework

ich habe schon einiges mit remoting gemacht, und im allgemeinen geht es recht gut.

was habt ihr denn für fehler?

Hunv Themenstarter:in
193 Beiträge seit 2005
vor 16 Jahren

Das Problem ist, dass wir drei Monate versucht haben dieses Problem zu lösen und keine Lösung finden konnten und auch niemanden gefunden haben, der uns helfen konnte.
Und es geht auch nicht ums Intranet, sondern ums Internet. Und da sind die Probleme. Lokal klappt alles wunderbar, aber wenns übers Internet geht, kommt nachdem man eine Fehlermeldung behoben hat die nächste, dann wieder die nächste und dann ist man irgendwann wieder bei der ersten. Zumindest ging es uns so und wir haben keine Möglichkeit gefunden das Problem zu lösen. Desshalb bleibt uns halt keine Alternative, als eine andere Möglichkeit der Kommunikation zu benutzen.

Visit me @ www.beremote.net

Gelöschter Account
vor 16 Jahren

dann gibt es schon mehrere probleme.

  1. remoting ist ein sicherheitsleck wenn man nicht nur native .net typen verwendet(string , int usw.), da bei der deserialisierung bei entsprechnder manipulation des objektes auch ausfürhbarer code mitgeschickt werden kann.
    deshalb soll man im internet auch remoting nicht verwenden. generell muss man mit serialisierung aufpassen....

  2. wenn ihr ganze objekte serialisiert, dann seit euch bewußt das man auch lokal die software manipulieren kann und somit auf dem server code einschleusen kann.

Hunv Themenstarter:in
193 Beiträge seit 2005
vor 16 Jahren

wenn ihr ganze objekte serialisiert, dann seit euch bewußt das man auch lokal die software manipulieren kann und somit auf dem server code einschleusen kann.

Sind wir uns. Entsprechende Mechanismen sind bereits fürs Remoting entwickelt gewesen und müssen jetzt nur angepasst werden.

Visit me @ www.beremote.net