使用している「配列」の種類に応じて、さまざまなオプションがあります。それは Array、List<>、または ArrayList ですか?
List<> の場合、CopyTo()
リストの一部を取得してバイナリ配列に入れることができます。これは、XmlWriter を使用して記述できます。XmlReader から読み戻すには、単純に を使用InsertRange
してデータを逆シリアル化します。
読み方の例:
// elsewhere
List<byte> bytes;
// in the deserialization
int bufferSize = 1024;
byte[] buffer = new byte[bufferSize];
int index = 0;
int numRead = -1;
while (numRead != 0) // actually read stuff
{
numRead = reader.ReadContentAsBase64(buffer, bufferSize);
if (numRead > 0)
{
bytes.CopyTo(buffer, index, numRead);
index += numRead;
}
}
注: 上記のコードはテストされていませんが、おそらく近いものです。同様のことを行うことができますが、逆に、データをエンコードして base64 に書き込むことができます。他のタイプの場合は、配列をバイトのリストに変換するだけです。
バイト配列にバイト以外の型を取得するには、を使用する必要がありますSystem.BitConverter
。これには、非常に満足できる 2 つのメソッドがあります。GetBytes
基本的なデータ型をバイト配列に変換するメソッドと、とToXxx
を含むです。base64 情報を読み込んだ後、または書き出す前に、自分でその変換を行う責任があります。ToInt32
ToBoolean
BitConverter を使用してビットごとの変換を一連のバイトに行うことができますが、配列を単一のバイト配列に変換して元に戻すためのアルゴリズムを設計するのはあなた次第です。