jamesmontemagno / SettingsPlugin

Read and Write Settings Plugin for Xamarin and Windows
MIT License
324 stars 80 forks source link

Add a generic add/get function [Suggestion] #98

Closed DVDPT closed 7 years ago

DVDPT commented 7 years ago

It would be very nice to have a generic function to get and add info, that would enable to do generic treatment (e.g INPC events) also in a generic way.

An usage example: Current

public string MySetting
        {
            get => CrossSettings.Current.GetValueOrDefault(nameof(MySetting), "");
            set
            {
                CrossSettings.Current.AddOrUpdateValue(nameof(MySetting), value);
                RaisePropertyChanged(nameof(MySetting)); // this line repeated on every setting
            }
        }

Possible public interface

public string MySetting
{
    get { return GetSetting(nameof(MySetting), ""); }
    set { SetSetting(nameof(MySetting), value); }
}

public void SetSetting<T>(string name, T @default)
{
    if(CrossSettings.Current.AddOrUpdateValue(name, @default))
         RaisePropertyChanged(name);

}
jamesmontemagno commented 7 years ago

This was already removed as it can be abused since it doesn't support all data types.

DVDPT commented 7 years ago

An InvalidArgumentException would put a stop on possible abuses xD