简体   繁体   中英

How to save a list of objects in isolated storage in wp7

Hi I have this class to save RSS feed items. I have a list of them and I want to store it in isolated storage in Windows phone 7. Can somebody help me for that. I know how to serialize the class and save it in the isolated storage as a single object for a single RSS item.

 public class RssItem
{       
    public RssItem(string title, string summary, string publishedDate, string url ,string subtitle ,string duration, Enclosure enclosure)
    {
        Title = title;
        Summary = summary;
        PublishedDate = publishedDate;
        Url = url;
        Subtitle = subtitle;
        Enclosure = enclosure;
        Duration = duration;
        PlainSummary = HttpUtility.HtmlDecode(Regex.Replace(summary, "<[^>]+?>", ""));
    }

   public string Title { get; set; }
   public string Summary { get; set; }
    public string PublishedDate { get; set; }
    public string Url { get; set; }
    public string PlainSummary { get; set; }
    public Enclosure Enclosure { get; set; }
    public string Description { get; set; }
    public string Mp3Url { get; set; }
    public string Subtitle { get; set; }
    public string Duration { get; set; }
}

Any help would be appreciated. Thanks.

You can do it using xmlserializer.

code for saving your list is as follows:

 var store = IsolatedStorageFile.GetUserStoreForApplication();
     if (store.FileExists(filePath))
            {
                store.DeleteFile(filePath);
            }
         using (var stream = new IsolatedStorageFileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write, store))
         {
            var serializer = new XmlSerializer(typeof(List<RssItem>));
            serializer.Serialize(stream, RssItemsList);
         }

Code for retrieving is as follows:

var store = IsolatedStorageFile.GetUserStoreForApplication();

        if (store.FileExists( filePath))
        {
            using (var stream = new IsolatedStorageFileStream( filePath, FileMode.OpenOrCreate, FileAccess.Read, store))
            {
                var reader = new StreamReader(stream);

                if (!reader.EndOfStream)
                {
                    var serializer = new XmlSerializer(typeof(List<RssItem>));
                        RssItemsList= (List<RssItem>)serializer.Deserialize(reader);
                }
            }
        }

You can also do it in Json format by using DataContractJsonSerializer class

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM