C# 存储列表<;字符串>;当应用程序重新启动时,到隔离存储中的retuns null
我正在隔离存储器中存储类型为C# 存储列表<;字符串>;当应用程序重新启动时,到隔离存储中的retuns null,c#,list,windows-phone-8,isolatedstorage,C#,List,Windows Phone 8,Isolatedstorage,我正在隔离存储器中存储类型为List的对象。我的问题是,当我关闭应用程序并稍后重新启动它,并尝试检索列表时,它返回null 除列表对象外,所有其他对象(如字符串、布尔、int、字典等)均保留其值 public List<string> BuddyGroupsSetting { get { return GetValueOrDefault<List<string>>(BuddyGroupsKey
List
的对象。我的问题是,当我关闭应用程序并稍后重新启动它,并尝试检索列表时,它返回null
除列表
对象外,所有其他对象(如字符串
、布尔
、int
、字典
等)均保留其值
public List<string> BuddyGroupsSetting
{
get
{
return GetValueOrDefault<List<string>>(BuddyGroupsKeyName, BuddyGroupsDefault);
}
set
{
AddOrUpdateValue(BuddyGroupsKeyName, value);
Save();
}
}
公共列表BuddyGroup设置
{
得到
{
返回GetValuerDefault(BuddyGroupsKeyName,BuddyGroupsDefault);
}
设置
{
AddOrUpdateValue(BuddyGroupsKeyName,值);
Save();
}
}
我已经检查了我的代码,没有清除列表的命令。我错过了什么?好吧,我想起来了。简单的错误。。我没有直接设置'BuddyGroupsSetting'属性的值,而是错误地使用
BuddyGroupsSetting.Add(item)
因此,set
从未真正被调用过!为了纠正这个问题,我创建了一个私有字段
private List<string> buddyGroupsSetting = new List<string>();
显示的代码实际上不允许我们帮助您。setter允许null,因此代码可能会将其设置为null。您尚未向我们显示从存储中保存/加载列表的代码。感谢Matt,我们发现从未调用setter导致未保存的值。我在下面的回答中解释。如果您找到了解决方案,请将您自己的答案标记为已接受!
buddyGroupsSetting = BuddyGroupsSetting