У меня есть старая система, которая использует XML для хранения данных. Я собираюсь использовать данные для другого мини-проекта и хотел использовать LINQ to XML для запроса / обновления данных; но есть 2 сценария, в которых я не уверен, должен ли я справиться сам или нет:
1- Если у меня есть что-то похожее на следующий код, и два человека случайно нажали Save () одновременно? LINQ to XML ждет, пока файл снова станет доступным перед сохранением, или он просто выбросит? Я не хочу вставлять замки, если мне не нужно:)
// I assume the next line doesn't lock the file
XElement doc = XElement.Load("Books.xml");
XElement newBook = new XElement("Book",
new XAttribute("publisher", "My Publisher"),
new XElement("author", "Me")));
doc.Add(newBook);
// What happens if two people try this at the same time?
doc.Save("Books.xml");
2 - Если я загружаю () документ, добавляю запись под конкретным узлом, а затем нажимаю кнопку Сохранить (); что произойдет, если другой пользователь уже добавил значение под этим узлом (так как я нажал на Load ()) или, что еще хуже, удалил узел?
Очевидно, что я могу обойти эти проблемы, но я не смог найти никакой документации, которая могла бы сказать мне, должен ли я или нет, и первым, по крайней мере, было бы немного свиньи для надежного тестирования.