You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have several int properties I am storing, but when I get them back out, they are returned as Int64.
int myInt = 12;
localSettings.Store("myInt", myInt);
myInt = localSettings.Get("myInt"); //this fails as the value returned is an Int64
The save method for my settings...
public void Save(string propertyName)
{
if(!isLoaded) return;
var prop = this.GetType().GetProperty(propertyName);
if (prop == null) return;
var val = prop.GetValue(this);
localSettings.Store(propertyName, val);
}
The load method...
public Settings() {
isLoaded = false;
localSettings.Load();
var props = typeof(Settings).GetProperties().Where(p => p.CanWrite);
foreach (var k in localSettings.Keys())
{
var p = props.FirstOrDefault(x => x.Name == k);
if (p == null) continue;
var val = localSettings.Get(k);
p.SetValue(this, localSettings.Get(k));
}
isLoaded = true;
}
The text was updated successfully, but these errors were encountered:
It is a known issue with the deserialization where it does not know if the value is Int32 or Int64 so defaults to Int64 just-in-case. See the longer explanation at https://stackoverflow.com/a/44010307
Try changing the type of what is returned to the same type as the property.
I have several int properties I am storing, but when I get them back out, they are returned as Int64.
The save method for my settings...
The load method...
The text was updated successfully, but these errors were encountered: