Ich habe die folgende Methode GetData
, die eine StreamReader
aus einer Datei erstellt.Muss ich XmlReader entsorgen, wenn ich den zugrunde liegenden Stream entsorge?
private void GetData(string file)
{
string filename = Path.GetFileNameWithoutExtension(file);
XmlDocument xmldoc = new XmlDocument();
using (StreamReader sr = new StreamReader(file))
{
Stream bs = sr.BaseStream;
Stream cl = mainParser.CleanMarkup(bs);
try
{
xmldoc = mainParser.LoadDocument(bs);
}
catch (XmlException ex)
{
// Exceptions are usually caused by non-compliant documents.
// These errors are not critical to the operation of this program.
Console.WriteLine(filename + " " + ex.Message);
}
}
Msdn msdnParser = new Msdn(xmldoc);
ListViewItem lvitem = new ListViewItem(filename);
lvitem.SubItems.Add(filename);
foreach (string item in msdnParser.Subitems)
{
lvitem.SubItems.Add(item);
}
listView.Items.Add(lvitem);
}
mainParser.LoadDocument(bs)
ruft folgende:
public XmlDocument LoadDocument(Stream file)
{
XmlDocument xmldoc = new XmlDocument();
XmlReader xmlread = XmlReader.Create(file);
xmldoc.Load(xmlread);
return xmldoc;
}
StreamReader
durch GetData
angeordnet ist. Bedeutet dies, dass ich XmlReader
nicht entsorgen muss, da (glaube ich) dies über seine einzige nicht verwaltete Ressource verfügen würde?
Ahh, das ist ein guter Punkt. Dies ist wahrscheinlich ein Konzept, das ich beachten muss. Immer schön wenn ein Beispiel in meinem Gesicht auftaucht. –
Ah die Antwort ist nur für C# gut. Es wäre schön, wenn die Antwort auch auf C++/CLI angewendet werden könnte. – user3454439