XElement.Load在.NET CF Windows CE 5.0中的本机异常

时间:2011-06-11 07:41:29

标签: .net compact-framework windows-ce

我在Windows CE 5.0上使用C#.NET CF 3.5,还有另一个问题。 在我的应用程序中,我通过使用'XElement'类从一个XML文件加载/保存一些数据作为我的配置。 我有一个名为'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 :(得分:0)

感谢Waleed和Henk Holterman, 根据我的经验,在使用非托管代码和本机DLL时出现内存泄漏的某些原因会导致本机异常错误代码为0x00000005。我在许多其他方面遇到了同样的错误。在我的项目中,我调用了一些本机DLL函数写入输入/输出参数,如byte []和* BYTE等。我认为由非托管代码和C ++代码写入内存时的任何错误和不确定性会导致以后在不相关点中的异常托管代码!

希望这很有用。