This documentation is archived and is not being maintained.

SettingsProvider Class

Acts as a base class for deriving custom settings providers in the application settings architecture.

Namespace:  System.Configuration
Assembly:  System (in System.dll)

public abstract class SettingsProvider : ProviderBase

The SettingsProvider type exposes the following members.

Protected methodSettingsProviderInitializes an instance of the SettingsProvider class.

Public propertyApplicationNameGets or sets the name of the currently running application.
Public propertyDescriptionGets a brief, friendly description suitable for display in administrative tools or other user interfaces (UIs). (Inherited from ProviderBase.)
Public propertyNameGets the friendly name used to refer to the provider during configuration. (Inherited from ProviderBase.)

Public methodEquals(Object)Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetHashCodeServes as a hash function for a particular type. (Inherited from Object.)
Public methodGetPropertyValuesReturns the collection of settings property values for the specified application instance and settings property group.
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodInitializeInitializes the provider. (Inherited from ProviderBase.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodSetPropertyValuesSets the values of the specified group of property settings.
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)

A settings provider defines the mechanism for storing configuration data used in the application settings architecture. The .NET Framework contains a single default settings provider, LocalFileSettingsProvider, which stores configuration data to the local file system. However, you can create alternate storage mechanisms by deriving from the abstract SettingsProvider class. The provider that a wrapper class uses is determined by decorating the wrapper class with the SettingsProviderAttribute. If this attribute is not provided, the default, LocalFileSettingsProvider, is used.

When you create a custom settings provider, at minimum, you must provide implementations for the three methods of this class: GetPropertyValues, SetPropertyValues and ApplicationName.

For client applications, you can add more standardized functionality to a custom provider by also implementing the IApplicationSettingsProvider interface. This interface mirrors methods found in the ApplicationSettingsBase class, which mainly enables versioning support.

Typically, you should design settings providers to be single-instanced to avoid storage resource contention. Providers should also be thread-safe because they can be called simultaneously from multiple wrapper instances in a single application domain or from multiple applications in different domains.

At minimum, a settings provider must recognize three attributes—ApplicationScopedSettingAttribute, UserScopedSettingAttribute, and DefaultSettingValueAttribute. For a full listing of attributes that can be applied to application settings, see Application Settings Attributes. A custom setting provider should resolve attributes applied to settings properties in the following manner:

  1. If the provider can fulfill the request implied by the attribute, obviously it should do so.

  2. If the provider cannot fulfill the request, it should ignore it silently.

  3. If two or more properties conflict; for example, a property being decorated with both ApplicationScopedSettingAttribute and UserScopedSettingAttribute; the provider should throw a ConfigurationException.

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.