Я разрабатываю простое приложение, когда я пытаюсь сохранить XMLDocument на флэш-накопитель, на котором недостаточно свободного места, происходит странная вещь.Хотя я уже добавил предложение try catch для XMLDocument.Save (filePath), я все еще получаю необработанное исключение, и, похоже, исключение выдается из потока завершения GC (кажется, что GC пытается сбросить еще 4096 байт, которых нет на диске).Я думаю, что это распространенный сценарий использования объекта XMLDocument, интересно, что не так?
фрагмент кода:
XmlDocument query = new XmlDocument();
query.Load("g:\\test.xml");
... //modify the content of query to make it bigger
try
{
query.Save("g:\\test.xml");
}
catch(Exception ex)
{}
Трассировка стека исключений, как показано ниже:
mscorlib.dll! System.IO .__ Error.WinIOError (int errorCode = 112, строка MaybeFullPath = "") + 0x498 байт mscorlib.dll! System.IO.FileStream.WriteCore (буфер байта [], смещение int, число int) +0x119 байт mscorlib.dll! System.IO.FileStream.FlushWrite (bool с именемFromFinalizer) + 0x22 байт mscorlib.dll! System.IO.FileStream.Dispose (bool discing = false) + 0x57 байт
mscorlib.dll! System.IO.FileStream.Finalize () + 0x1b байт