Nun, eine Besetzung von myObjectbis byte[]wird niemals funktionieren, es sei denn, Sie haben eine explizite Konvertierung oder wenn myObject es sich um eine handelt byte[]. Sie benötigen einen Serialisierung Rahmen von irgendeiner Art. Es gibt viele da draußen, einschließlich Protokollpuffer, die mir sehr am Herzen liegen. Es ist ziemlich "schlank und gemein" in Bezug auf Raum und Zeit.
Sie werden feststellen, dass fast alle Serialisierungs-Frameworks erhebliche Einschränkungen hinsichtlich der Serialisierung aufweisen - Protokollpuffer mehr als einige, da sie plattformübergreifend sind.
Wenn Sie mehr Anforderungen stellen können, können wir Ihnen mehr helfen - aber es wird nie so einfach wie das Casting ...
EDIT: Nur um darauf zu antworten:
Ich brauche meine Binärdatei, um die Bytes des Objekts zu enthalten. Nur die Bytes, überhaupt keine Metadaten. Objekt zu Objekt gepackt. Also werde ich eine benutzerdefinierte Serialisierung implementieren.
Bitte denken Sie daran, dass die Bytes in Ihren Objekten häufig Verweise sind. Sie müssen also herausfinden, was Sie damit tun sollen.
Ich vermute, Sie werden feststellen, dass das Entwerfen und Implementieren Ihres eigenen benutzerdefinierten Serialisierungsframeworks schwieriger ist, als Sie sich vorstellen.
Ich persönlich würde empfehlen, dass Sie sich nicht die Mühe machen, ein allgemeines Serialisierungsframework zu entwickeln, wenn Sie dies nur für einige bestimmte Typen tun müssen. Implementieren Sie einfach eine Instanzmethode und eine statische Methode in allen benötigten Typen:
public void WriteTo(Stream stream)
public static WhateverType ReadFrom(Stream stream)
Eines ist zu beachten: Alles wird schwieriger, wenn es um Vererbung geht. Wenn Sie ohne Vererbung wissen, mit welchem Typ Sie beginnen, müssen Sie keine Typinformationen angeben. Natürlich gibt es auch die Frage der Versionierung - müssen Sie sich Gedanken über die Abwärts- und Vorwärtskompatibilität mit verschiedenen Versionen Ihrer Typen machen?