Click or drag to resize

CategorizedSettingsBase Class

Represents the base class for application settings that are synchronized with a categorized section in a configuration file.
Inheritance Hierarchy

Namespace: GSF.Configuration
Assembly: GSF.Core (in GSF.Core.dll) Version: 2.4.218-beta+101eee949414e414795e55a6e73d88938f0177b8
Syntax
public abstract class CategorizedSettingsBase : SettingsBase
View Source

The CategorizedSettingsBase type exposes the following members.

Constructors
 NameDescription
Protected methodCategorizedSettingsBase(String) Creates a new instance of the CategorizedSettingsBase class for the application's configuration file.
Protected methodCategorizedSettingsBase(String, Boolean, Boolean) Creates a new instance of the CategorizedSettingsBase class for the application's configuration file.
Protected methodCategorizedSettingsBase(ConfigurationFile, String, Boolean, Boolean, Boolean) Creates a new instance of the CategorizedSettingsBase class for the application's configuration file.
Top
Properties
 NameDescription
Public propertyCategoryName Gets or sets default category name of section used to access settings in configuration file.
Protected propertyConfigFile Gets or sets reference to working configuration file.
Public propertyCulture Gets or sets the CultureInfo to use for the conversion of setting values to and from String.
(Inherited from SettingsBase)
Public propertyItem Gets or sets the value of the specified field or property.
(Inherited from SettingsBase)
Protected propertyMemberAccessBindingFlags Gets or sets BindingFlags used to access fields and properties of derived class.
(Inherited from SettingsBase)
Public propertyRequireSerializeSettingAttribute Gets or sets flag that determines if SerializeSettingAttribute is required to exist before a field or property is serialized to the configuration file; defaults to False.
(Inherited from SettingsBase)
Public propertyUseCategoryAttributes Gets or sets value that determines whether a CategoryAttribute applied to a field or property will be used for the category name.
Top
Methods
 NameDescription
Protected methodCreateSetting Create setting in configuration file if it doesn't already exist. This method is for internal use.
(Overrides SettingsBaseCreateSetting(String, String, String))
Public methodCreateValue Adds a setting to the application's configuration file, if it doesn't already exist.
(Inherited from SettingsBase)
Protected methodDeriveDefaultValue Attempts to get best default value for given member.
(Inherited from SettingsBase)
Public methodDispose Releases all the resources used by the CategorizedSettingsBase object.
(Inherited from SettingsBase)
Protected methodDispose(Boolean) Releases the unmanaged resources used by the CategorizedSettingsBase object and optionally releases the managed resources.
(Inherited from SettingsBase)
Public methodEqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
Protected methodExecuteActionForFields Executes specified action over all public derived class member fields.
(Inherited from SettingsBase)
Protected methodExecuteActionForProperties Executes specified action over all public derived class properties.
(Inherited from SettingsBase)
Protected methodFinalize Releases the unmanaged resources before the CategorizedSettingsBase object is reclaimed by GC.
(Inherited from SettingsBase)
Protected methodGetAttributeValueTAttribute, TValue Attempts to find specified attribute and return specified value.
(Inherited from SettingsBase)
Public methodGetDefaultValue Gets the default value specified by DefaultValueAttribute, if any, applied to the specified field or property.
(Inherited from SettingsBase)
Public methodGetEncryptKey Gets the optional private encryption key specified by EncryptSettingAttribute, if any, applied to the specified field or property.
(Inherited from SettingsBase)
Public methodGetEncryptStatus Gets the encryption status specified by EncryptSettingAttribute, if any, applied to the specified field or property.
(Inherited from SettingsBase)
Public methodGetEnumerator Returns an enumerator based on String elements that iterates over the field and property names of this class that are targeted for serialization to the configuration file.
(Inherited from SettingsBase)
Public methodGetFieldCategoryName Gets the category name to use for the specified field or property.
Public methodGetFieldDescription Gets the description specified by DescriptionAttribute, if any, applied to the specified field or property.
Public methodGetFieldSettingScope Gets the SettingScope specified by UserScopedSettingAttribute, if any, applied to the specified field or property.
Public methodGetHashCodeServes as the default hash function.
(Inherited from Object)
Public methodGetSettingName Gets setting name to use for specified field or property.
(Inherited from SettingsBase)
Public methodGetTypeGets the Type of the current instance.
(Inherited from Object)
Public methodGetValue(String, Type) Gets the application's configuration file setting converted to the given type.
(Inherited from SettingsBase)
Public methodGetValueT(String) Gets the application's configuration file setting converted to the given type.
(Inherited from SettingsBase)
Public methodGetValueT(String, T) Copies the specified application setting into the given value.
(Inherited from SettingsBase)
Protected methodInitialize Initializes configuration settings from derived class fields or properties.
(Inherited from SettingsBase)
Public methodLoad Loads configuration file into setting fields.
(Inherited from SettingsBase)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object.
(Inherited from Object)
Protected methodPersistSettings Persist any pending changes to configuration file. This method is for internal use.
(Overrides SettingsBasePersistSettings)
Public methodRestoreDefaultSettings Restores the default settings of the configuration file.
(Inherited from SettingsBase)
Protected methodRetrieveSetting Retrieves setting from configuration file. This method is for internal use.
(Overrides SettingsBaseRetrieveSetting(String, String))
Public methodSave Saves setting fields into configuration file.
(Inherited from SettingsBase)
Public methodSetValue Copies the given value into the specified application setting.
(Inherited from SettingsBase)
Protected methodStoreSetting Stores setting to configuration file. This method is for internal use.
(Overrides SettingsBaseStoreSetting(String, String, String))
Public methodToStringReturns a string that represents the current object.
(Inherited from Object)
Top
Extension Methods
 NameDescription
Public Extension MethodGetEnumValueOrDefault Gets the enumeration constant for value, if defined in the enumeration, or a default value.
(Defined by EnumExtensions)
Public Extension MethodGetEnumValueOrDefaultT Gets the enumeration constant for this value, if defined in the enumeration, or a default value.
(Defined by EnumExtensions)
Top
Remarks

In order to make custom types serializable for the configuration file, implement a TypeConverter for the type.
See MSDN for details.

Example
Here is an example class derived from CategorizedSettingsBase that automatically serializes its fields and properties to the configuration file.
C#
public enum MyEnum
 {
     One,
     Two,
     Three
 }

 public class MySettings : CategorizedSettingsBase
 {
     // Private property fields (private fields will not be serialized)
     private double m_doubleVal;

     // Public settings fields
     public bool BoolVal = true;
     public int IntVal = 1;
     public float FloatVal = 3.14F;
     public string StrVal = "This is a test...";
     public MyEnum EnumVal = MyEnum.Three;

     [SettingName("UserOptions"), EncryptSetting()]
     public string Password = "default";

     // Mark this field to not be serialized to configuration file...
     [SerializeSetting(false)]
     public decimal DecimalVal;

     public MySettings()
         : base("GeneralSettings") {}

     [Category("OtherSettings"), Description("My double value setting description."), DefaultValue(1.159D)]
     public double DoubleVal
     {
         get
         {
             return m_doubleVal;
         }
         set
         {
             m_doubleVal = value;
         }
     }

     [SerializeSetting(false)]
     public bool DontSerializeMe { get; set; }
 }
See Also