私は BizTalk の初心者で、カスタム パイプライン コンポーネントを作成しています。次のような例のコードを見たことがあります。
public void Disassemble(IPipelineContext pContext, IBaseMessage pInMsg)
{
Stream originalDataStream = pInMsg.BodyPart.GetOriginalDataStream();
StreamReader strReader = new StreamReader(originalDataStream);
string strOriginalData = strReader.ReadToEnd();
byte[] bufferOriginalMessage = new byte[strOriginalData.Length];
bufferOriginalMessage = ASCIIEncoding.Default.GetBytes(strOriginalData);
Stream ms = new MemoryStream();
ms.Write(bufferOriginalMessage, 0, strOriginalD
//other stuff here
ms.Seek(0, SeekOrigin.Begin);
pInMsg.BodyPart.Data = ms;
}
ただし、メソッドのどこにも StreamReader が閉じられたり破棄されたりしていません。メソッドは単に終了します。
通常、StreamReader およびその他のクラスを使用する場合、ストリームが自動的に破棄されるように using ステートメントを使用することをお勧めします。
この StreamReader を破棄しない特定の理由 (おそらく BizTalk 内) はありますか?
この点に関する情報は見つかりませんでした。誰でも助けることができますか?