我在修补逻辑删除后从启动恢复/加载应用程序时遇到问题。
在以下行失败:
ServerCollection collection = AppSettings.GetSetting(AppResources.settings_servercollection) as ServerCollection;
此行位于启动和激活内部调用的函数中。
AppSettings类是此类Here:,但我将其修改为使用object
而不是<T>.
调试器似乎没有进入AppSettings功能。它还显示我希望键入的字符串(AppResources.settings_servercollection
),所以我认为这也不是问题所在。
最后,不会抛出异常。我尝试了整个部分,并在应用程序的UnhandledException
和NavigationFailed
内部使用断点,但我似乎从来没有到达任何一个。
之前是否还有其他人经历过此事,或者知道原因可能是什么?
编辑:只是想指出当然应用程序在清理/重建/重新安装等后工作。 编辑:我已经能够把它分离出来了:
IsolatedStorageSettings Settings = System.IO.IsolatedStorage.IsolatedStorageSettings.ApplicationSettings;
我通过将它放在AppSettings的每个Get / Set函数中,并在进入函数后看到它直接在该行上死掉了。那说,任何想法?
答案 0 :(得分:2)
我发现IsolatedStorage处于无效状态的应用程序存在问题
我猜这是你的应用程序的问题
private static IsolatedStorageSettings Settings
尝试解决问题:
答案 1 :(得分:1)
我怀疑序列化(和反序列化)ServerCollection
对象时出现问题。
在内部,传递给IsolatedStorageSettings
的对象被序列化为XML(使用DataContractSerializer
- 这可能是使用IsolatedStorageSettings
的性能影响的一部分。如果您的对象无法正确反序列化,您可能会看到此问题。
作为替代方案,我建议您自己处理[de]序列化,然后将序列化版本存储在IsolatedStorageSettings
中。
答案 2 :(得分:1)
序列化结果证明是正常的。真正的问题是我在一个正在保存的属性中进行了一些无限递归。
public Dictionary<string, object> Dictionary
{
get
{
if (_dictionary == null)
_dictionary = new Dictionary<string, object>();
return _dictionary;
}
set
{
Dictionary = value;
}
}
正如你可能看到的那样,结局并不好。太糟糕了,我之前写过的控制台C#应用程序中没有“StackOverflowException”或类似内容。
无论如何,感谢您的帮助..希望有这个问题的其他人可能会觉得这很有帮助。