Я пишу небольшой класс для управления конфигурацией XML для собственного приложения.Вторая итерация XDocument.Save() throwing «Доступ к пути запрещен»
Следующий код вызывается каждый раз, когда загружается новый список t, и пытается сериализовать данные для нового t или загрузить где t уже существует.
Мне не хватает чего-то фундаментального, но я не знаю, где.
Исключение брошено этим кодом
if (!File.Exists(Path.Combine(Environment.CurrentDirectory + "TaskData.xml")))
{
XDocument doc = new XDocument();
XElement rootElement = new XElement("ConfigData",
new XElement("Servers"),
new XElement("Paths"));
doc.Add(rootElement);
doc.Save("TaskData.xml");
}
Специфическая линия "doc.Save ("TaskData.xml").
На первой итерации это отлично работает, и код создает файл шаблона.
На второй итерации, даже если файл xml находится в каталоге, File.Exists возвращает «false», а doc.Save выдает исключение разрешения.
Любая помощь очень ценится.
Wow , Я не могу поверить, что не понял этого ... Я считаю, что я копирую и вставляю из предыдущей версии, пытаясь облегчить проблему. Кроме того, перегрузка, которая вызывается, на самом деле является сигнатурой Path.Combine (String []), я удивлен, что компилятор принимает одну строку в качестве аргумента и будет неявно использовать ее. Я мог бы поклясться, что видел инстанты методов, которые принимают параметры массива, отказываются от этой ситуации. – SurelyTheresABetterWay
@SurelyTheresABetterWay: Это 'params string []' - это нормально. Если бы он был просто 'string []', он бы не использовал его. –