Chcę dołączyć niektóre węzły do dokumentu XML przy użyciu Linq2XML. Ten plik jest używany przez inne procesy i powinien być w stanie odczytać plik podczas jego aktualizacji. Więc wymyśliłem tego rozwiązania, co oczywiście nie jest prawidłowy sposób (Metoda doc.Save() nie powiedzie się i mówi, że inny proces używa pliku):Jak poprawnie otworzyć FileStream do użytku z XDocumentem
using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.ReadWrite, FileShare.Read))
{
doc = XDocument.Load(new StreamReader(fs));
doc.Root.Add(entry);
doc.Save(filename);
fs.Close();
}
Każda pomoc jest znacznie appreceated.
dzięki za odpowiedź, jon. jeśli używam tej wersji, czy mogę upewnić się, że inne procesy mogą otworzyć ten sam plik dla odczytu? – Mats
Cóż, nie mogą z niego czytać, gdy zadzwonisz Save ... czy to jest problem? Nie pamiętam, co File.OpenText robi w zakresie udostępniania, ale możesz łatwo sprawdzić i użyć konstruktora StreamReader, wykonując właściwą czynność, jeśli to konieczne. –