[英]Save List to IsolatedStorageSettings
I have this class : 我有这个课:
class LyricsItem
{
public LyricsItem()
{
}
public LyricsItem(LyricsItem item)
{
this.searchUrl = item.searchUrl;
this.croppingRegex = item.croppingRegex;
}
private string _searchUrl;
private string _croppingRegex;
public string searchUrl
{
get { return _searchUrl; }
set { _searchUrl = value; }
}
public string croppingRegex
{
get { return _croppingRegex; }
set { _croppingRegex = value; }
}
}
And this is Array with items LyricsItem
: 这是带有
LyricsItem
数组:
public List<LyricsItem> lyricsArray;
This is how i add items to the array : 这是我将项目添加到数组的方式:
LyricsItem item = new LyricsItem();
item.croppingRegex = croppingRegex;
item.searchUrl = searchurl;
lyricsArrayTmp.Add(item);
And i want to add it to IsolatedStorageSettings
: 我想将其添加到
IsolatedStorageSettings
:
IsolatedStorageSettings appSettings = IsolatedStorageSettings.ApplicationSettings;
if (appSettings.Contains("lyricsData"))
{
appSettings["lyricsData"] = lyricsArray;
}
else
{
appSettings.Add("lyricsData", lyricsArray);
}
appSettings.Save();
But When i get to save the IsolatedStorageSettings i get this exception: 但是当我保存IsolatedStorageSettings时,出现以下异常:
The collection data contract type 'System.Collections.Generic.List`1[[**********, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]' cannot be deserialized because it does not have a public parameterless constructor. Adding a public parameterless constructor will fix this error. Alternatively, you can make it internal, and use the InternalsVisibleToAttribute attribute on your assembly in order to enable serialization of internal members - see documentation for more details
You can't serialize a private class in the ApplicationSettings. 您无法在ApplicationSettings中序列化私有类。 Declare it as public instead:
声明为公开:
public class LyricsItem
{
public LyricsItem()
{
}
public LyricsItem(LyricsItem item)
{
this.searchUrl = item.searchUrl;
this.croppingRegex = item.croppingRegex;
}
private string _searchUrl;
private string _croppingRegex;
public string searchUrl
{
get { return _searchUrl; }
set { _searchUrl = value; }
}
public string croppingRegex
{
get { return _croppingRegex; }
set { _croppingRegex = value; }
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.