Собственное исключение XElement.Load в .NET CF Windows CE 5.0 - PullRequest
0 голосов
/ 11 июня 2011

Я работаю в C # .NET CF 3.5 в Windows CE 5.0, и у меня возникла другая проблема.В моем приложении я загружаю / сохраняю некоторые данные из / в файл XML в качестве моей конфигурации, используя класс 'XElement'.у меня есть статические методы с именами «Load» и «Save», которые получают ключ и строковое значение для загрузки и сохранения.это работает отлично.но когда я вызываю метод Save более 4 раз, я получаю собственную ошибку.кажется, что ранее загруженные документы XElement должны быть расположены или что-то в этом роде.но как?или в чем дело?Мой метод сохранения:

private static void Save(string keyName,string Value)
{
    string strConfigFilePath = CheckConfigFileExistence(); // checks file existence and returns only the file name

    XElement xeDoc = XElement.Load(strConfigFilePath); // HERE! throws a native exception at 4th method call! 
    XElement xeAppSettings = xeDoc.Element("appSettings"); // find 'appSettings' section
    XElement xKey = xeAppSettings.Elements("add").Where(el => el.Attribute("key").Value == keyName).FirstOrDefault(); // find the desired key

    xKey.Attribute("value").Value = Value;
    xeDoc.Save(strConfigFilePath);
}

1 Ответ

0 голосов
/ 01 октября 2011

Благодаря Валиду и Хенку Холтерманам, Зависит от моего опыта, собственное исключение с собственным кодом ошибки 0x00000005 происходит по некоторым причинам утечек памяти при работе с неуправляемыми кодами и собственными DLL. я столкнулся с той же ошибкой во многих других пунктах. в моем проекте я вызывал некоторые собственные функции DLL, записывающие в параметры ввода / вывода, такие как byte [] и * BYTE и т. д. Я думаю, что любая ошибка и нестабильность при записи в память неуправляемым кодом и кодами C ++ приводят к этим исключениям позже в нерелевантных точках управляемый код!

надеюсь, что это будет полезно.

...