井戸からのキャストmyObjectには、byte[]あなたがた場合、または明示的な変換を持っていない限り決して仕事に行くされていないmyObject ですbyte[]。何らかのシリアル化フレームワークが必要です。私にとって近くて大切なプロトコルバッファを含め、たくさんあります。空間的にも時間的にもかなり「無駄のない」意味です。
ただし、ほとんどすべてのシリアル化フレームワークには、シリアル化できるものに大きな制限があることがわかります。ただし、クロスプラットフォームであるため、プロトコルバッファーはいくつかのものよりも多くなります。
より多くの要件を与えることができれば、私たちはあなたをさらに助けることができます-しかし、それはキャストするほど簡単ではありません...
編集:これに応答するだけです:
オブジェクトのバイトを含むバイナリファイルが必要です。バイトのみで、メタデータは一切ありません。パックされたオブジェクト間。だから私はカスタムシリアル化を実装します。
オブジェクトのバイトは参照であることが多いので注意してください。そのため、それらのバイトをどう処理するかを検討する必要があります。
独自のカスタムシリアル化フレームワークの設計と実装が想像以上に難しいことに気付くと思います。
私が個人的に推奨するのは、これをいくつかの特定のタイプに対してのみ行う必要がある場合は、一般的なシリアル化フレームワークを考え出そうとしないことです。必要なすべてのタイプにインスタンスメソッドと静的メソッドを実装するだけです。
public void WriteTo(Stream stream)
public static WhateverType ReadFrom(Stream stream)
心に留めておくべきことの1つは、継承が関与している場合、すべてがよりトリッキーになります。継承がなければ、どのタイプから始めるかがわかっていれば、タイプ情報を含める必要はありません。もちろん、バージョン管理の問題もあります。タイプの異なるバージョンとの後方互換性と前方互換性について心配する必要がありますか?