我对 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 语句,以便自动释放流。
是否有特定原因(可能在 BizTalk 中)为什么您不处置此 StreamReader?
我没有找到关于这一点的任何信息。任何人都可以帮忙吗?