2011-12-23 26 views
9

Używam wbudowanych ustawień dostarczonych przez Visual Studio do przechowywania prostych ustawień aplikacji. Aż do teraz, mam dostęp do tego w mojej aplikacji za pomocą konwencji:przy użyciu właściwości Ustawienia dla ustawień aplikacji

Properties.Settings.Default.MySetting 

a następnie wywołać metody jak Save za pomocą:

Properties.Settings.Default.Save() 

Jednakże ktoś ostatnio powiedział mi, że to jest bardziej poprawne aby uzyskać dostęp do właściwości tworząc zmienną składową takiego:

private Properties.Settings settings = new Properties.Settings() 

a następnie za pomocą elementu settings dostęp do właściwości i metody jak:

settings.MySetting 
settings.Save() 

ja niejasno przypominam, że to uzasadnione, opisując różnice w sposobie ustawienia przechowywane są w obszarze użytkownika.

Czy ktoś może potwierdzić lub podać dalsze szczegóły dotyczące różnic? Wielkie dzięki.

Odpowiedz

10

Settings.Default inicjowany jest w następujący sposób:

private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 

Więc to jest prawie taka sama jak ręcznego tworzenia instancją Settings, z tym że jeden dostarczone przez Settings.Default jest zsynchronizowany instancji. Nie widzę żadnego powodu, aby ręcznie utworzyć instancję Settings ...

4

To zmarnowało dużo mojego czasu.

[MyAppNameSpace].Properties.Settings.Default.Save(); 

Nie wiesz, kiedy można upuścić nazw jak wyżej, ale w WPF w kodzie app.xaml.cs I potrzebnych do określenia nazw uzyskać go skompilować.

+1

Dziękuję, dziękuję! To oszczędzało mi tyle czasu! Zabawne, że jestem pierwszym, który pomógł po 2,5 roku! To działało w app.xaml.cs – mdiehl13

+0

Uratował mnie też! Pracował bez przestrzeni nazw, dopóki nie przeniosłem go do App.xaml.cs, a następnie "inicjator pola nie może odwoływać się do pola niestatycznego". Wygląda na to, że istnieje element 'Properties' w klasie' Application', z którym był niejednoznaczny. – Vimes

Powiązane problemy