Kezdőlap > .NET, Windows Phone 7 > Alkalmazás beállítások

Alkalmazás beállítások

2012. május 2. szerda Hozzászólás Go to comments

Amikor csak egyszerű alkalmazás beállításokat szeretnénk elmenteni vagy lekérdezni, akkor az ApplicationSettings kulcs/érték-pár tárolási módszer a legcélravezetőbb megoldás. Például: ha egy felhasználónak egy szolgáltatás bejelentkezéséhez egy szövegdobozba kell beírnia a felhasználói nevét, akkor a mobilon a munkát egyszerűbbé tehetjük számára azzal, hogy ha már egyszer beírta, a háttérben eltároljuk ezt a felhasználónevet. Ha később újra elindítja az alkalmazást, akkor a korábban megadott és eltárolt felhasználónévvel automatikusan ki lesz töltve az adott szövegdoboz.

Nézzük meg példákon keresztül:

Először is szükségünk lesz a System.IO.IsolatedStorage névtérre:

using System.IO.IsolatedStorage;

Egy új kulcs/érték-párt többféle módon hozhatunk létre: egyszerűen az Add metódus meghívásával, ebben az esetben az első paraméter egy kulcs, aminek egyedinek kell lennie. Ha már létezik a kulcs, akkor egy System.ArgumentException-t kaphatunk, a második paraméter pedig egy tetszőleges objektum lehet. Az alábbi példában egy egyszerű stringet láthatunk:

// Felhasználónév hozzáadása – Új kulcs létrehozása

IsolatedStorageSettings.ApplicationSettings.Add("UserName", "Attila");

Mivel ez egy Dictionary, ezért a rá vonatkozó szabályok élnek, így például egy indexer segítségével is hozzáadhatunk egy új kulcs/érték-párt (így tudjuk a már létező kulcsok értékét is módosítani). Az indexeres megoldásnál, ha az adott kulcs nem létezik, akkor az létrejön; abban az esetben, ha már létezik a kulcs, akkor a tartalmát felülírja a meghatározott értékkel.

// Felhasználónév mentése /vagy módosítása

IsolatedStorageSettings.ApplicationSettings["UserName"] = "Attila";

Az adott kulcsok értékét persze le is kérdezhetjük, ehhez is használhatunk két módszert: az egyik az itt bemutatott indexeres módszer:

var userName = IsolatedStorageSettings.ApplicationSettings["UserName"];

A másik lehetőség a TryGetValue metódus használata:

string userValue;

IsolatedStorageSettings.ApplicationSettings.TryGetValue<String>("Kulcs", out userValue);

Az Indexeres módszer esetén, ha a kulcs nem található meg a szótárban, akkor egy KeyNotFoundException-t fogunk kapni, míg ha a TryGetValue metódust használjuk, nem kapunk hibát. Ebben az esetben, ha a kulcs nem létezik, akkor a userValue változó értéke üres (null) lesz. A TryGetValue nagyon hasonlít a TryParse metódusokra, amit a .NET-es típusoknál használhatunk. Ez is egy Boolean értékkel tér vissza: ha sikerült a kulcsot megtalálni és kiolvasni a tartalmát, akkor true-val, egyébként false-szal.

Abban az esetben, ha meg akarunk győződni arról, valóban létezik-e a kulcs, a Contains metódust használhatjuk fel. Ez a metódus true értékkel tér vissza, ha létezik az adott kulcs, false értékkel, ha nem.

if (IsolatedStorageSettings.ApplicationSettings.Contains("UserName"))

{

    //Létezik a UserName kulcs. Olvassuk ki pl. a tartalmát és irassuk ki

    MessageBox.Show(IsolatedStorageSettings.ApplicationSettings["UserNme"].ToString());

}

else

{

    //Nem létezik

    MessageBox.Show("Nincs ilyen kulcs!");

}

Az előző példákban csak egy egyszerű string adatot tároltunk el, de természetesen komplex objektumokat is eltárolhatunk az ApplicationSettings-ben. A következő példában egy saját osztályt hozunk létre, és azt tároljuk el, majd olvassuk ki. Ebben az esetben nem kell törődnünk az adatsorosítással, ezt az ApplicationSettings saját maga megoldja.

public class Person

{

    public string Name { get; set; }

    public int Age { get; set; }

}

 

Person myPerson = new Person()

{

    Name = "Jhon",

    Age = 32  

};

//Adat mentése

IsolatedStorageSettings.ApplicationSettings["PersonData"] = myPerson;

 

// Adat lekérdezése

Person newPerson = IsolatedStorageSettings.ApplicationSettings["PersonData"] as Person;

MessageBox.Show(newPerson.Name);

Az ApplicationSettings az alkalmazás bezárásakor elmenti az adatokat, viszont ha az alkalmazás futása közben nem várt hiba történik, és az alkalmazás leáll, ezek az információk nem kerülnek elmentésre. Ha biztosra szeretnénk menni, akkor ki kell kényszerítenünk a mentést az ApplicationSettings Save metódusával.

IsolatedStorageSettings.ApplicationSettings.Save();

A mentett adatokat persze el is távolíthatjuk az ApplicationSettings-ből. Eltávolíthatunk például egy kulcsot, ilyenkor a Remove metódust kell használnunk:

IsolatedStorageSettings.ApplicationSettings.Remove("UserName");

Ha az összes értéket el akarjuk távolítani, akkor a Clear metódust kell meghívnunk:

IsolatedStorageSettings.ApplicationSettings.Clear();

Mivel az ApplicationSettings egy szótár, ezért mind a kulcsokon, mind az értékeken végig tudunk haladni a foreach utasítással:

foreach (var key in IsolatedStorageSettings.ApplicationSettings.Keys)

{

    // Feldolgozás

}

 

foreach (var value in IsolatedStorageSettings.ApplicationSettings.Values)

{

    // Feldolgozás

}

Kategóriák:.NET, Windows Phone 7 Címke: , ,
  1. Még nincs hozzászólás.
  1. No trackbacks yet.

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s

%d blogger ezt kedveli: