public class ApplicationSettings
{
#region Fields
private static readonly object SyncRoot = new object();
#endregion Fields
#region Properties
private IsolatedStorageSettings Settings
{
get { return IsolatedStorageSettings.SiteSettings; }
}
public object this[string key]
{
get { return Settings.TryGetValueOrDefault(key, null); }
set
{
lock (SyncRoot)
{
Settings[key] = value;
Settings.Save();
}
}
}
#endregion Properties
#region Public Methods
public bool TryGetValue<T>(string key, out T value)
{
return Settings.TryGetValue<T>(key, out value);
}
public T TryGetValueOrDefault<T>(string key, T defaultValue)
{
T value;
return Settings.TryGetValue(key, out value) ? value : defaultValue;
}
#endregion Public Methods
}