protected override void SaveInternal(SettingsObject settings) { var settingType = settings.GetType(); foreach (var field in GetSettingsFields(settings.GetType())) { SavePropertyValue(settingType, settings.ID, field.Name, field.GetValue(settings)); } foreach (var property in GetSettingsProperties(settings.GetType())) { SavePropertyValue(settingType, settings.ID, property.Name, property.GetValue(settings, null)); } NSUserDefaults.StandardUserDefaults.Synchronize(); }