У меня проблема с сохранением моего объекта. Посмотрите на этот код:
public void SerializeToXML(String FileName)
{
XmlSerializer fSerializer = new XmlSerializer(typeof(Configuration));
using (Stream fStream = new FileStream(FileName, FileMode.Create, FileAccess.Write, FileShare.None))
{
fSerializer.Serialize(fStream, this);
}
}
Проблема в том, что когда пользователь не имеет прав на местоположение на жестком диске, эта функция не выдает мне никаких исключений и не сохраняет мой файл. Например, сохранение в «C: \ test.xml» ведет себя так, как будто ничего не произошло. И я хотел бы знать, если файл не был сохранен, и было бы хорошо узнать причину.
Я знаю, что могу проверить, существует ли файл в указанном месте, и создать исключение вручную, но разве это не должно быть сделано самим XmlSerializer или FileStream?
Спасибо за ваше время
Edit:
Поскольку я подозревал, что мне пришлось включить дополнительную отладку. Поскольку я использую предложение using
, необходимо включить «Включить параметр отладки неуправляемого кода» в свойствах проекта в разделе «Отладка». После этого исключение показывается в процессе отладки.
Edit2
Замена приведенного выше предложения using
на этот код вызывает исключение:
public void SerializeToXML(String FileName)
{
XmlSerializer fSerializer = new XmlSerializer(typeof(Configuration));
Stream fStream = new FileStream(FileName, FileMode.Create, FileAccess.Write, FileShare.None);
try
{
fSerializer.Serialize(fStream, this);
}
finally
{
fStream.Close();
}
}