c# - Isolated Storage & Saving Multiple Objects -


i wish know best way create saving , loading logic can save , load x items. example, in isolated storage can save composite/poco object doing this:

var settings = isolatedstoragesettings.applicationsettings; settings.add("key", myobject); 

and load this:

var settings = isolatedstoragesettings.applicationsettings; return settings["key"] myobject; 

but how load x amount of objects isolatedstorage? best create list<myobject> collection , save , whenever want save object load existing , .add(newobject) , save again?

so this:

list<myobject> myobjects = new list<myobject>(); myobjects.add(newobject); settings.add("myobjects", myobjects); 

and when loading:

var myobjects = settings["myobjects"] list<myobject>; 

this require deleting , adding collection in settings.add requires unique key. best way?

i'd rather use settings iso file.

due msdn : isolatedstoragesettings provide convenient way store user specific data key-value pairs in local isolatedstoragefile. typical use save settings, such number of images display per page, page layout options, , on.

so don't think using isolatedstoragesettings best option , if , use isolatedstoragefile.

to save , load content of list , scenario

1- if item added or removed list , searlize list xml , save isolatedstoragefile

 private static void serialize(string filename, object source)     {         var userstore = isolatedstoragefile.getuserstoreforapplication();          using (var stream = new isolatedstoragefilestream(filename, filemode.create, userstore))         {             xmlserializer serializer = new xmlserializer(source.gettype());             serializer.serialize(stream, source);         }     } 

2- when want load list @ place , deserialize xml file stored in isolatedstoragefile

public static void deserialize<t>(observablecollection<t> list , string filename)     {          list = new observablecollection<t>();          var userstore = isolatedstoragefile.getuserstoreforapplication();         if (userstore.fileexists(filename))         {             using (var stream = new isolatedstoragefilestream(filename, filemode.open, userstore))             {                 xmlserializer serializer = new xmlserializer(list.gettype());                 var items = (observablecollection<t>)serializer.deserialize(stream);                  foreach (t item in items)                 {                     list.add(item);                 }             }         }     } 

Comments

Popular posts from this blog

ios - UICollectionView Self Sizing Cells with Auto Layout -

node.js - ldapjs - write after end error -

DOM Manipulation in Wordpress (and elsewhere) using php -