Settings Class

Defines system settings for an application.

Definition

Namespace: Gemstone.Configuration
Assembly: Gemstone.Common (in Gemstone.Common.dll) Version: 1.0.128 -- Release Build+d050cfc5563c89a1188cc3c6b2d417530856f490
public class Settings : DynamicObject
Inheritance
Object    DynamicObject    Settings

Remarks

Configuration settings are loaded from common sources for a Gemstone project. The properties INIFile, SQLite, and EnvironmentalVariables control the configuration sources that are available and how they are managed. Handling of available settings are defined in a hierarchy where the settings are loaded are in the following priority order, from lowest to highest:
  • INI file (defaults.ini) - Machine Level, %programdata% folder
  • INI file (settings.ini) - Machine Level, %programdata% folder
  • SQLite database (settings.db) - User Level, %appdata% folder
  • Environment variables - Machine Level
  • Environment variables - User Level
Command line arguments can also be added to the hierarchy to override settings. For example:
C#
Settings settings = new()
{
    INIFile = ConfigurationOperation.ReadWrite,
    SQLite = ConfigurationOperation.Disabled         
};

// Bind settings to configuration sources
settings.Bind(new ConfigurationBuilder()
    .ConfigureGemstoneDefaults(settings)
    .AddCommandLine(args, settings.SwitchMappings));
See the SwitchMappings property for defining command line switches.

Constructors

Settings Creates a new Settings instance.

Properties

Configuration Gets the source IConfiguration for settings.
Count Gets the sections count for the settings.
Default Gets the default instance of Settings as a dynamic object.
EnvironmentalVariables Gets or sets configuration operation mode for environmental variables.
INIFile Gets or sets configuration operation mode for INI file settings.
Instance Gets the default instance of Settings.
IsDirty Gets flag that determines if any settings have been changed.
Item Gets the SettingsSection for the specified key.
SectionNames Gets the names for the settings sections.
SplitDescriptionLines Gets or sets flag that determines if description lines, e.g., those encoded into an INI file, should be split into multiple lines.
SQLite Gets or sets configuration operation mode for SQLite settings.
SwitchMappings Gets the command line switch mappings for Settings.

Methods

Bind Attempts to bind the Settings instance to configuration values by matching property names against configuration keys recursively.
ConfigureAppSettings Configures the IAppSettingsBuilder for Settings.
EqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
FinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object)
GetDynamicMemberNamesReturns the enumeration of all dynamic member names.
(Overrides DynamicObjectGetDynamicMemberNames)
GetHashCodeServes as the default hash function.
(Inherited from Object)
GetMetaObjectProvides a DynamicMetaObject that dispatches to the dynamic virtual methods. The object can be encapsulated inside another DynamicMetaObject to provide custom behavior for individual actions. This method supports the Dynamic Language Runtime infrastructure for language implementers and it is not intended to be used directly from your code.
(Inherited from DynamicObject)
GetTypeGets the Type of the current instance.
(Inherited from Object)
MemberwiseCloneCreates a shallow copy of the current Object.
(Inherited from Object)
Save(Boolean, Boolean) Saves any changed settings.
Save(Settings, Boolean) Saves any changed settings.
ToStringReturns a string that represents the current object.
(Inherited from Object)
TryBinaryOperationProvides implementation for binary operations. Classes derived from the DynamicObject class can override this method to specify dynamic behavior for operations such as addition and multiplication.
(Inherited from DynamicObject)
TryConvertProvides implementation for type conversion operations. Classes derived from the DynamicObject class can override this method to specify dynamic behavior for operations that convert an object from one type to another.
(Inherited from DynamicObject)
TryCreateInstanceProvides the implementation for operations that initialize a new instance of a dynamic object. This method is not intended for use in C# or Visual Basic.
(Inherited from DynamicObject)
TryDeleteIndexProvides the implementation for operations that delete an object by index. This method is not intended for use in C# or Visual Basic.
(Inherited from DynamicObject)
TryDeleteMemberProvides the implementation for operations that delete an object member. This method is not intended for use in C# or Visual Basic.
(Inherited from DynamicObject)
TryGetIndexProvides the implementation for operations that get a value by index. Classes derived from the DynamicObject class can override this method to specify dynamic behavior for indexing operations.
(Overrides DynamicObjectTryGetIndex(GetIndexBinder, Object, Object))
TryGetMemberProvides the implementation for operations that get member values. Classes derived from the DynamicObject class can override this method to specify dynamic behavior for operations such as getting a value for a property.
(Overrides DynamicObjectTryGetMember(GetMemberBinder, Object))
TryInvokeProvides the implementation for operations that invoke an object. Classes derived from the DynamicObject class can override this method to specify dynamic behavior for operations such as invoking an object or a delegate.
(Inherited from DynamicObject)
TryInvokeMemberProvides the implementation for operations that invoke a member. Classes derived from the DynamicObject class can override this method to specify dynamic behavior for operations such as calling a method.
(Inherited from DynamicObject)
TrySetIndexProvides the implementation for operations that set a value by index. Classes derived from the DynamicObject class can override this method to specify dynamic behavior for operations that access objects by a specified index.
(Overrides DynamicObjectTrySetIndex(SetIndexBinder, Object, Object))
TrySetMemberProvides the implementation for operations that set member values. Classes derived from the DynamicObject class can override this method to specify dynamic behavior for operations such as setting a value for a property.
(Overrides DynamicObjectTrySetMember(SetMemberBinder, Object))
TryUnaryOperationProvides implementation for unary operations. Classes derived from the DynamicObject class can override this method to specify dynamic behavior for operations such as negation, increment, or decrement.
(Inherited from DynamicObject)
UpdateInstance Updates the default instance of Settings.

Fields

SystemSettingsCategory Defines the configuration section name for system settings.

Extension Methods

GetEnumValueOrDefault Gets the enumeration constant for value, if defined in the enumeration, or a default value.
(Defined by EnumExtensions)
GetEnumValueOrDefaultT Gets the enumeration constant for this value, if defined in the enumeration, or a default value.
(Defined by EnumExtensions)

See Also