Ich bin ziemlich neu in BizTalk und Erstellen einer benutzerdefinierten Pipeline-Komponente. Ich habe in Beispielen Code gesehen, der dem folgenden ähnlich ist:
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;
}
Aber nirgendwo in der Methode wird der StreamReader geschlossen oder entsorgt. Die Methode wird einfach beendet.
Normalerweise ist es bei der Verwendung von StreamReader und anderen Klassen die beste Praxis, eine using-Anweisung zu verwenden, damit der Stream automatisch entsorgt wird.
Gibt es einen bestimmten Grund (vielleicht in BizTalk), warum Sie diesen StreamReader nicht entsorgen würden?
Ich habe keine Informationen zu diesem Punkt gefunden. Kann jemand helfen?