使用している「アレイ」の種類によって、さまざまなオプションがあります。それは配列、リスト<>、またはArrayListですか?
リストの場合CopyTo()
を使用すると、リストの一部を取得してバイナリ配列にすることができます。これをXmlWriterで書き込むことができます。それらをXmlReaderから読み取るには、単にInsertRange
を使用してデータを逆シリアル化します。
A読書例:
// 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
を使用する必要があります。これには、基本データ型をバイト配列に変換するGetBytes
とToInt32
とToBoolean
を含むToXxx
という2つの方法があります。あなたは、あなたがBase64の情報を読んだ後、またはあなたがそれを書き出す前に、自分自身で変換を行う責任があります。
BitConverterを使用してバイトごとの変換を行うことはできますが、配列を1バイトの配列に変換して戻すアルゴリズムを設計するのはあなた次第です。
これは、byte []またはint [、]などのSystem.Arrayです。 "バイナリアレイ"とはどういう意味ですか?どうすればXmlWriterでそれを書くでしょうか? –
更新された例を参照してください。 :) –
ああ、 '数値型またはブール型'。あなたはそれを書き出す前に、バイトベースの配列に変換する必要があります。 –