# PersistentSettings class

Namespace: [Rhino](https://developer.rhino3d.com/api/rhinocommon/namespace/rhino.md) · Assembly: [RhinoCommon](https://developer.rhino3d.com/api/rhinocommon/assembly/rhinocommon.md)

```cs
[Serializable]
public class PersistentSettings : ISerializable
```

A dictionary of SettingValue items.

## Constructors

- [PersistentSettings](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/ctor.md)

## Properties

- [ChildKeys](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/childkeys.md): Gets a collection containing the keys in the settings dictionary.
- [HiddenFromUserInterface](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/hiddenfromuserinterface.md): If false then values will appear in the EditOptions window
- [Keys](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/keys.md): Gets a collection containing the keys in the settings dictionary.
- [RhinoAppSettings](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/rhinoappsettings.md): (static)
- [StringListRootKey](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/stringlistrootkey.md): (static) Adding this string to a string list when calling SetStringList will cause the ProgramData setting to get inserted at that location in the list.

## Methods

- [AddChild](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/addchild.md): Call this method to add a new child key, if the key is exists then the existing key is returned otherwise a new empty [PersistentSettings](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings.md) child key is added and the new settings are returned.
- [ClearChangedFlag](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/clearchangedflag.md)
- [ContainsChangedValues](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/containschangedvalues.md)
- [ContainsModifiedValues](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/containsmodifiedvalues.md)
- [DeleteChild](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/deletechild.md): Call this method to delete a child settings key.
- [DeleteItem](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/deleteitem.md)
- [FromPlugInId](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/frompluginid.md): (static)
- [GetBool](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/getbool.md): (3 overloads)
- [GetByte](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/getbyte.md): (3 overloads)
- [GetChar](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/getchar.md): (3 overloads)
- [GetChild](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/getchild.md): Call this method to get a nested settings [PersistentSettings](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings.md) instance, will throw a [KeyNotFoundException](https://learn.microsoft.com/dotnet/api/system.collections.generic.keynotfoundexception) exception if the key does not exist.
- [GetColor](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/getcolor.md): (5 overloads)
- [GetDate](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/getdate.md): (3 overloads)
- [GetDouble](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/getdouble.md): (3 overloads)
- [GetEnumValue<T>](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/getenumvalue.md): (3 overloads) Gets a stored enumerated value using a custom key, or return default value if not found.
- [GetGuid](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/getguid.md): (3 overloads)
- [GetInteger](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/getinteger.md): (5 overloads)
- [GetPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/getpoint.md): (3 overloads)
- [GetPoint3d](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/getpoint3d.md): (3 overloads)
- [GetRectangle](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/getrectangle.md): (3 overloads)
- [GetSettingIsHiddenFromUserInterface](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/getsettingishiddenfromuserinterface.md): (2 overloads) Values read from all users settings files will be marked as read-only which will cause any future calls to Set... to fail.
- [GetSettingIsReadOnly](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/getsettingisreadonly.md): Values read from all users settings files will be marked as read-only which will cause any future calls to Set... to fail.
- [GetSettingType](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/getsettingtype.md): Gets the type of the last value passed to Set... or Get... for the specified setting.
- [GetSize](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/getsize.md): (3 overloads)
- [GetString](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/getstring.md): (3 overloads)
- [GetStringDictionary](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/getstringdictionary.md): (3 overloads)
- [GetStringList](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/getstringlist.md): (3 overloads)
- [GetUnsignedInteger](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/getunsignedinteger.md): (3 overloads)
- [GetValidator<T>](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/getvalidator.md): Provides a way to find a ready-to-use validator for the PersistentSetting class for the given the key, or obtaining null.
- [HideSettingFromUserInterface](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/hidesettingfromuserinterface.md)
- [RegisterSettingsValidator<T>](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/registersettingsvalidator.md): Sets a validator for a given key. Note to implementers: `T` should be one of the supported types for the PersistentSettings class and should match the type associated with the key. This method allows to use anonymous methods and lambda expressions.
- [SetBool](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/setbool.md)
- [SetByte](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/setbyte.md)
- [SetChar](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/setchar.md)
- [SetColor](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/setcolor.md): (2 overloads)
- [SetDate](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/setdate.md)
- [SetDefault](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/setdefault.md): (16 overloads)
- [SetDouble](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/setdouble.md)
- [SetEnumValue<T>](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/setenumvalue.md): (2 overloads) Set an enumerated value in the settings using a custom key
- [SetGuid](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/setguid.md)
- [SetInteger](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/setinteger.md)
- [SetPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/setpoint.md)
- [SetPoint3d](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/setpoint3d.md)
- [SetRectangle](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/setrectangle.md)
- [SetSize](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/setsize.md)
- [SetString](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/setstring.md)
- [SetStringDictionary](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/setstringdictionary.md)
- [SetStringList](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/setstringlist.md): Including a item with the value of StringListRootKey will cause the ProgramData value to get inserted at that location in the list when calling GetStringList.
- [SetUnsignedInteger](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/setunsignedinteger.md)
- [ISerializable.GetObjectData](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/system-runtime-serialization-iserializable-getobjectdata.md)
- [TryGetBool](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/trygetbool.md): (2 overloads)
- [TryGetByte](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/trygetbyte.md): (2 overloads)
- [TryGetChar](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/trygetchar.md): (2 overloads)
- [TryGetChild](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/trygetchild.md): Call this method to get a nested settings [PersistentSettings](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings.md) instance, will return true if the key exists and value was set otherwise; will return false and value will be set to null.
- [TryGetColor](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/trygetcolor.md): (4 overloads)
- [TryGetDate](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/trygetdate.md): (2 overloads)
- [TryGetDefault](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/trygetdefault.md): (12 overloads)
- [TryGetDouble](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/trygetdouble.md): (2 overloads)
- [TryGetEnumValue<T>](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/trygetenumvalue.md): Attempt to get the stored value for an enumerated setting using a custom key. Note: the enumerated value ALWAYS gets assigned! Be sure to check for success of this method to prevent erroneous use of the value.
- [TryGetGuid](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/trygetguid.md): (2 overloads)
- [TryGetInteger](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/trygetinteger.md): (2 overloads)
- [TryGetPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/trygetpoint.md): (2 overloads)
- [TryGetPoint3d](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/trygetpoint3d.md): (2 overloads)
- [TryGetRectangle](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/trygetrectangle.md): (2 overloads)
- [TryGetSettingIsHiddenFromUserInterface](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/trygetsettingishiddenfromuserinterface.md): (2 overloads) Values read from all users settings files will be marked as read-only which will cause any future calls to Set... to fail.
- [TryGetSettingIsReadOnly](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/trygetsettingisreadonly.md): Values read from all users settings files will be marked as read-only which will cause any future calls to Set... to fail.
- [TryGetSettingType](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/trygetsettingtype.md): Get the type of the last value passed to Set... or Get... for the specified setting.
- [TryGetSize](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/trygetsize.md): (2 overloads)
- [TryGetString](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/trygetstring.md): (2 overloads)
- [TryGetStringDictionary](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/trygetstringdictionary.md): (2 overloads)
- [TryGetStringList](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/trygetstringlist.md): (2 overloads)
- [TryGetUnsignedInteger](https://developer.rhino3d.com/api/rhinocommon/type/rhino.persistentsettings/trygetunsignedinteger.md): (2 overloads)
