0

xml にシリアル化する必要があるビジネス クラスがあります。BitArray プロパティがあります。

私はそれを飾った[XmlAttribute]が、連載は失敗している

XML シリアル化可能にするには、ICollection から継承する型に、継承階層のすべてのレベルで Add(System.Boolean) の実装が必要です。System.Collections.BitArray は Add(System.Boolean) を実装していません。

xml にシリアル化できるかどうかわかりません。

そうでない場合、BitArray をシリアル化する効率的な手段は何でしょうか

ご覧いただきありがとうございます

4

2 に答える 2

4

BitArray を XML に直接シリアル化することはできません。その理由は、シリアル化を解除するには、BitArray が提供しない Add メソッドが必要だからです。

ただし、シリアル化できる配列にコピーすることはできます。

BitArray ba = new BitArray(128);
int[] baBits = new int[4];  // 4 ints makes up 128 bits

ba.CopyTo(baBits, 0);
// Now serialize the array

別の方法では、配列を逆シリアル化し、BitArray コンストラクターを呼び出します。

int[] baBits;  // This is deserialized somehow
BitArray ba = new BitArray(baBits);

これを行う場合、BitArray のサイズをワード サイズの倍数にする必要があります (つまり、int の配列を使用する場合、BitArray のサイズは 32 の倍数にする必要があります)。

于 2010-03-16T18:18:33.917 に答える
0

手っ取り早い方法として、[XmlAttribute] を持つプロパティを作成し、静的な BitArray.CopyTo メソッドを使用して BitArray から作成された配列を getter で返すのはどうですか?

于 2010-03-16T17:49:52.083 に答える