Storing Windows Phone User Settings: Listing 1

The Settings class.

public static class Settings
{
    private const string LocationEnabledKey = "LocationEnabled";
    public static bool LocationEnabled
    {
        get { return IsolatedStorageSettings.ApplicationSettings
                                            .SafeValue<bool>(LocationEnabledKey); }
        set { IsolatedStorageSettings.ApplicationSettings[LocationEnabledKey] = value; }
    }

    private const string RefreshIntervalInMinutesKey = "RefreshIntervalInMinutes";
    public static int RefreshIntervalInMinutes
    {
        get { return IsolatedStorageSettings.ApplicationSettings
                                            .SafeValue<int>(RefreshIntervalInMinutesKey); }
        set { IsolatedStorageSettings.ApplicationSettings
                                     [RefreshIntervalInMinutesKey] = value; }
    }
}

public static class SettingsHelper
{
    public static T SafeValue<T>(this IDictionary<string,object> settings, string key )
    {
        object outValue;
        if(settings.TryGetValue(key, out outValue))
        {
            if (outValue is T) return (T) outValue;
        }
        return default(T);
    }
}

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.

comments powered by Disqus

Featured

  • Customize Your Own Audio Test Cues in Visual Studio 2019 v16.9 Preview 3

    Yes, developers can be alerted to a failed test with a fart sound.

  • Progress Touts New Third-Party Blazor UI Components

    Third-party dev tool specialist Progress announced an update to its .NET-centric offerings, touting new controls for Blazor, Microsoft's red-hot project for creating web apps with C#.

  • Entity Framework Core 6: What Developers Want

    Microsoft outlined its plan for Entity Framework Core 6, which in November will take its place as the data access component of the landmark .NET 6, a long-term support (LTS) release that will mark Microsoft's transition from the Windows-only .NET Framework to an open source, cross-platform umbrella offering of all things .NET.

  • AWS Open Sources .NET Porting Assistant GUI

    After previously open sourcing components of its Porting Assistant for .NET, Amazon Web Services open sourced the tool's GUI.

Upcoming Events