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

  • Top Free Extensions for Visual Studio 2022

    With Visual Studio 2022 having debuted just one month ago, there are now dozens of new extensions available specifically targeting the revolutionary 64-bit IDE.

  • Green Motherboard Closeup Graphic

    How to Compute Transformer Architecture Model Accuracy

    Dr. James McCaffrey of Microsoft Research uses the Hugging Face library to simplify the implementation of NLP systems using Transformer Architecture (TA) models.

  • VS Code Snippets Leads Recent Open Source GA Announcements

    GitHub's "Release Radar" for November shows a Visual Studio Code snippets project leading a raft of open source offerings that reached general availability in November.

  • C# Language Server Revamps VS 2022 Razor Editor for ASP.NET Core

    Microsoft is touting new capabilities in ASP.NET Core web development in Visual Studio 2022 thanks to a new Razor editor powered by a Razor Language Server.

Upcoming Events