Storing Windows Phone User Settings: Listing 2
Eliminating string constants.
- By Nick Randolph
- 05/08/2012
public static class Settings
{
public static bool LocationEnabled
{
get { return ReadSetting(() => LocationEnabled); }
set { WriteSetting(() => LocationEnabled, value); }
}
public static int RefreshIntervalInMinutes
{
get { return ReadSetting(()=>RefreshIntervalInMinutes); }
set { WriteSetting(()=>RefreshIntervalInMinutes, value); }
}
private static void WriteSetting<T>(Expression<Func<T>>
propertySelector, T settingValue)
{
var memberExpression = propertySelector.Body as MemberExpression;
var key = memberExpression.Member.Name;
IsolatedStorageSettings.ApplicationSettings[key] = settingValue;
}
private static T ReadSetting<T>(Expression<Func<T>> propertySelector)
{
var memberExpression = propertySelector.Body as MemberExpression;
var key = memberExpression.Member.Name;
return IsolatedStorageSettings.ApplicationSettings.SafeValue<T>(key);
}
}
About the Author
Nick Randolph runs Built to Roam, a consulting company that specializes in training, mentoring and assisting other companies build mobile applications. With a heritage in rich client applications for both the desktop and a variety of mobile platforms, Nick currently presents, writes and educates on the Windows Phone platform.