Così sto usando la filestream all'interno xmlreader
Perché filestream non chiusa da XmlReader
using (XmlReader reader = XmlReader.Create(new FileStream(archivePath, FileMode.Open), readerSettings))
{
reader.close()
}
Tuttavia, il feed file nel XmlReader ancora in stato di blocco dopo l'utilizzo dell'ambito, strano, ho thougt il xmlreader
sta andando per chiudere il filestream per me, non è vero?
Grazie per l'aiuto.
a dire il vero, no. Ho pensato che XmlReader è come StreamReader, chiuderà il flusso interno una volta fatto. usare due istruzioni usando è solo un po 'maldestro. –
Aneddot, ma la maggior parte degli esempi che vedo usano i due 'using'. –
@TOMMYWANG: Beh, si potrebbe pensare così, ma non riesco a trovare da nessuna parte nel codice (usando reflector) dove 'XmlTextReaderImpl' (che è ciò che' XmlReader.Create() 'restituisce effettivamente) elimina lo stream. Se chiudesse lo stream si verificherebbero problemi quando si usa un flusso per più lettori (cosa succede se voglio mantenere vivo il flusso? Perché il lettore dovrebbe decidere che non posso?), Quindi richiede l'approccio sicuro del fare Niente. Non sono d'accordo che è "goffo", ma "goffo" è meglio di "rotto" –