Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Programering af mobile enheder Windows Phone Storage.

Lignende præsentationer


Præsentationer af emnet: "Programering af mobile enheder Windows Phone Storage."— Præsentationens transcript:

1 Programering af mobile enheder Windows Phone Storage

2 Sources of Data Data can exist in several locations. For example, read-only data can be stored in a local file within your applications. User-specific data can be stored locally in an area called isolated storage. Data can be stored on the Internet, which can be accessed through web services. http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff402541(v=vs.105).aspx

3 Windows Phone Files Quickstart Working with files and folders in Windows Phone 7

4 Mapper og Tekstfiler using System.IO.IsolatedStorage; IsolatedStorageFile myStore = IsolatedStorageFile.GetUserStoreForApplication(); myStore.CreateDirectory("Test_cat1"); myStore.CreateDirectory("Test_cat2"); myStore.CreateFile("Test_file1"); string[] f = myStore.GetDirectoryNames(); // Oprettelse/Skrivning til tekst-fil NB: MyStore er kataloget IsolatedStorageFileStream outStream = new IsolatedStorageFileStream("MyText.txt", FileMode.Create, myStore);//Stream er binær StreamWriter writer = new StreamWriter(outStream);// Tekstfil på basis af stream writer.WriteLine(”en tekst”); writer.Close(); // Oprettelse/Læsning til tekst-fil NB: MyStore er kataloget IsolatedStorageFileStream inStream = new IsolatedStorageFileStream("MyText.txt", FileMode.Open, myStore);//Stream er binær StreamReader reader = new StreamReader(inStream); // Tekstfil på basis af stream String txt = reader.ReadLine(); reader.close();

5 Serialisering af objekter Der er muligt at gemme objekter, herunder komplicerede, som referere til andre objekter. Når et objekt serialiseres gemmes alle tilknyttede objekter Der muligt at sikre at objekter der er reference til flere steder fra kun gemmes en gang – man kan således gemme en hel model som eet objekt.

6 Serialisering af objekter DataContract Klasser der skal serialiseres skal forsynes med en DataContract attribut. Alle data der skal gemmes skal være public – hvis der gemmes via properties skal disse have public get og set !!!!!!!!!!!!! De datatyper der skal gemmes skal også være serialserbare (have datakontrakter) Simple typer (int, float mfl.), string og collectionklasser fx List er serialiserbare.... using System.Runtime.Serialization;.... [DataContract] public class Vare { private string navn; [DataMember] public string Navn { get { return navn; } set { navn = value; } } [DataContract] public string Enhed ;// Måske ikke god idé, men mulig

7 Serialisering af objekter DataContract og interfaces Hvis der anvendes interfaces, kan man i dette udelade set-properties således af indkapsling holdes, man skal dog så også angive type-attribut for de rigtige klasser der skal bruges..... using System.Runtime.Serialization;.... [DataContract]// evt [DataContract(IsReference = true)] hvis flere referencer til samme objekt [KnownType(typeof(Afdeling))]// Konkrete klasser i objekt-hierarki skal med her ved interfaces public class Forening : IForening { private string navn; [DataMember] public string Navn { get { return navn; } set { navn = value; } } private List afdelinger = new List (); [DataMember] // Bemærk at her returneres listen, hvorved indkapslingen ryger – så denne skal ikke med i IForening public List Afdelinger { get { return afdelinger; } set { afdelinger = value; } }

8 Serialisering af objekter Gem med DataContractSerializer..... using System.IO.IsolatedStorage; using System.Runtime.Serialization;// dll skal medtages under referencer..... private const string FORENING_FILENAME = "forening.bin"; public void StoreForening (Iforening forening) { IsolatedStorageFile myStore = IsolatedStorageFile.GetUserStoreForApplication(); using (IsolatedStorageFileStream outStream = new IsolatedStorageFileStream(FORENING_FILENAME, FileMode.Create, myStore)) { DataContractSerializer ser = new DataContractSerializer(typeof(Forening)); ser.WriteObject(outStream, foreningen); }

9 Serialisering af objekter Indlæs med DataContractSerializer..... using System.IO.IsolatedStorage; using System.Runtime.Serialization; // dll skal medtages under referencer..... private const string FORENING_FILENAME = "forening.bin"; public IForening LoadForening() { Iforening foreningen = null; IsolatedStorageFile myStore = IsolatedStorageFile.GetUserStoreForApplication(); if (myStore.FileExists(FORENING_FILENAME)) { using (IsolatedStorageFileStream inStream = new IsolatedStorageFileStream(FORENING_FILENAME, FileMode.Open, myStore)) { DataContractSerializer ser = new DataContractSerializer(typeof(Forening)); foreningen = ser.ReadObject(inStream) as Forening; } return foreningen; }

10 Windows Phone Settings Quickstart Working with settings in Windows Phone

11 ApplicaionSettings Du kan gemme data i ApplicaionSettings - bruges typisk til data der kun findes i en variant..... using System.IO.IsolatedStorage; // Problem med Serialisering?????? if (IsolatedStorageSettings.ApplicationSettings.Contains("PersistentKey")) { MessageBox.Show("PersistentKey findes"); string data = IsolatedStorageSettings.ApplicationSettings["PersistentKey"] as string; } //IsolatedStorageSettings.ApplicationSettings.Add("PersistentKey", "Persistent Data"); IsolatedStorageSettings.ApplicationSettings["PersistentKey"] = "Persistent Data"; IsolatedStorageSettings.ApplicationSettings.Save();

12 PageState Hvis du ikke har brug for persistens men ønsker at gemme en state undervejs (forsvinder ved Tombstone) kan du bruge PageState i din Page – der er en tilsvarende for applicatonen ved brug af PhoneApplicationService. if (this.State.ContainsKey("StateKey")) { MessageBox.Show("StateKey findes"); string data = this.State["StateKey"] as string; } this.State["StateKey"] = "Gemt State data";


Download ppt "Programering af mobile enheder Windows Phone Storage."

Lignende præsentationer


Annoncer fra Google