.NETTrip and tricks

ApplicationSettingsBase – zapis ustawień użytkownika

Skorzystanie z ApplicationSettingsBase pozwala nam zachowanie oddzielnych konfiguracji naszego programu dla wielu użytkowników. Opcja ta jest przydatna, kiedy z jednego komputera korzysta wiele osób i każda z nich chce posiadać własną konfigurację programu. Przechowywanie jednej konfiguracji dla programu w tym momencie staje się bezużyteczne ale z pomocą przychodzi nam ApplicationSettingsBase.

Aby skorzystać z w/w klasy wystarczy dodać przestrzeń nazw

using System.Configuration

oraz ustawić dziedziczenie naszej klasy po klasie:

ApplicationSettingsBase

Do ustawień zapisanych w konfiguracji użytkownika odwołujemy się jak do właściwości. Jednak nad właściwościami musimy zadeklarować atrybuty. Podstawowym wymaganym atrybutem jest

[UserScopedSettingAttribute()]

który informuje klasę, że poniższe właściwości będą używane do zapisywania danych. Ponadto mamy możliwość skorzystania z wielu innych atrybutów takich jak

[DefaultSettingValueAttribute("DefaultSetting")

który w przypadku braku zadeklarowanej wartości w pliku konfiguracyjnym zwraca nam domyślną wartość. Jeżeli nie zabezpieczymy się w/w sposób, a użytkownik będzie chciał odczytać wartość, której nie posiadamy w pliku konfiguracyjnym, w odpowiedzi otrzymamy nulla.

Poniżej przykład wykorzystania


[UserScopedSettingAttribute()]
[DefaultSettingValueAttribute("Przemysław")]
public String Name
{
 get { return (String)this["Name"]; }
 set { this["Name"] = value; }
}

[UserScopedSettingAttribute()]
[DefaultSettingValueAttribute("22")]
public int Age
{
 get { return (Int32)this["Age"]; }
 set { this["Age"] = value; }
}

[UserScopedSettingAttribute()]
[DefaultSettingValueAttribute("true")]
public Boolean Programmer
{
 get { return (Boolean)this["Programmer"]; }
 set { this["Programmer"] = value; }
}

Domyślną ścieżką zapisu dla ustawień użytkownika jest plik znajdujący się w ścieżce:

C:UsersUserAppDataLocal<nazwa aplikacji><hash kod><wersja programu>user.config

Do odczytu lub zapisu danych musimy powołać obiekt naszej klasy, następnie wywołujemy właściwość. W przypadku, kiedy chcemy zapisać dane ustawienie, podajemy właściwości nową wartość i z uchwytu wywołujemy metodę Save().
Przykład poniżej

UserConfig uc = new UserConfig ();
MessageBox.Show(uc.Programmer);
uc.Age = 33;
uc.Save();
Show Buttons
Hide Buttons