2

XmlTextReader.ReadElementContentAsBinHexを使用したメモリの肥大化の問題が発生しています。最初に、私は16進数を選択して使用しているのではなく、レガシーシステムと相互運用する必要がある結果として使用していると言いましょう。

int read;
var buffer = new byte[4096];
while((read = reader.ReadElementContentAsBinHex(buffer, 0, buffer.Length)) > 0)
    stream.Write(buffer, 0, read);

サイズが64Mを超える要素のコンテンツの場合、リーダーの内部StringBuilder内の割り当ての累積に関連していると思われるOutOfMemoryExceptionが発生します。残念ながら、これについてできることはあまりありません。これをIXmlSerializableオブジェクト内で使用しているため、XmlTextReader(ReadValueChunkなどをサポートしていません)を使用せざるを得ません。これは.NETのバグのように感じますが、私が立ち往生している可能性があります。誰か賢いアイデアはありますか?

4

0 に答える 0