2017-01-31 20 views
0

私は感銘を受けたバイナリフォーマッタを使用してデータをシリアル化することについて掘り下げました。しかし問題は互換性です。シリアル化されたデータをポータブルにしたいので、さまざまなプラットフォームでアクセスできます。したがって、XMLのシリアル化は答えのように見えるかもしれませんが、生成されるファイルは大きすぎるため、人間が読みやすいようにする必要はありません。C# - 配列/リストを格納するためのカスタムエンコーディングシステム

私はlong[]の配列と16進値を含むstring[]/List<string>をファイルに書くことができるように独自のエンコーディング/シリアライゼーションシステムを作成することを考えました。

すべての配列をbyte []に​​変換することを考えましたが、文字のエンコードが心配すべきかどうかはわかりません。私は、16進数と長い値を含む配列のシリアライズ/エンコーディングのみを意図しています。

byte[] Bytes = HexArray.Select(s => Convert.ToByte(s, 16)).ToArray(); 

[]のバイトまでの配列のすべてを変換した後、私は彼らが回復することができるように、個々のアレイのバイトオフセットの注目しながら、それらをファイルに書くことができます。

これを行うにはどのような方法が良いですか?私は本当にXMLに頼っていません。 BinaryFormatterが移植可能であったことを願います。それはエンディアン

+0

バイナリデータは、ポータブルですので、私はあなたの懸念が何であるかを知りません。バイナリは送信するのが最もコンパクトで、最も速くなります。 – jdweng

答えて

2

によって影響を受けることができないので、これはあなたがプロトコルバッファ(いるProtobuf)を見てすることがありますクロスプラットフォームにあります。

言語に依存し、プラットフォームに依存しない、拡張可能な方法を通信プロトコル、データストレージなどに使用するために構造化データをシリアル化することができます。

人気のC#ライブラリのカップルです:

+0

いい答えです。より一般的な件名:[バイナリXML](https://en.wikipedia.org/wiki/Binary_XML)について言及したいことがあります。 – Leandro

関連する問題