System.Configuration.SettingsProvider 类
方法描述
在应用程序设置结构中作为派生自定义设置提供程序的基类。
语法定义(C# System.Configuration.SettingsProvider 类 的用法)
public abstract class SettingsProvider : ProviderBase
构造函数
构造函数名称 | 构造函数描述 |
---|---|
SettingsProvider | 初始化 SettingsProvider 类的实例。 |
成员/方法
方法名称 | 方法描述 |
---|---|
Equals(Object) | 确定指定的 Object 是否等于当前的 Object。 (继承自 Object。) |
Finalize | 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。) |
GetHashCode | 用作特定类型的哈希函数。 (继承自 Object。) |
GetPropertyValues | 返回指定应用程序实例的设置属性值集合和设置属性组。 |
GetType | 获取当前实例的 Type。 (继承自 Object。) |
Initialize | 初始化提供程序。 (继承自 ProviderBase。) |
MemberwiseClone | 创建当前 Object 的浅表副本。 (继承自 Object。) |
SetPropertyValues | 设置指定的属性设置组的值。 |
ToString | 返回表示当前对象的字符串。 (继承自 Object。) |
提示和注释
设置提供程序定义用于存储应用程序设置体系结构中使用的配置数据的机制。 .NET Framework 包含一个默认设置提供程序 LocalFileSettingsProvider,该提供程序将配置数据存储在本地文件系统中。 但是,您可以通过从 SettingsProvider 抽象类中进行派生来创建备用的存储机制。 包装类使用的提供程序是通过使用 SettingsProviderAttribute 对包装类进行修饰而确定的。 如果未提供此特性,则将使用默认的 LocalFileSettingsProvider。
创建自定义设置提供程序时,至少必须提供此类的三种方法的实现:GetPropertyValues、SetPropertyValues 和 ApplicationName。
对于客户端应用程序,也可以通过实现 IApplicationSettingsProvider 接口向自定义提供程序添加更多的标准化功能。 此接口将镜像在 ApplicationSettingsBase 类中找到的方法,主要靠该类启用版本控制支持。
通常,应该将设置提供程序设计为单实例型的,从而避免存储资源争用。 此外,提供程序也应该是线程安全的,因为可能会从单个应用程序域的多个包装实例或不同域中的多个应用程序中同时调用这些提供程序。
设置提供程序必须至少识别三个特性:ApplicationScopedSettingAttribute、UserScopedSettingAttribute 和 DefaultSettingValueAttribute。 有关可应用于应用程序设置的完整特性列表,请参见 应用程序设置特性。 自定义设置提供程序应该采用以下方式对应用于设置属性的特性进行解析:
如果提供程序可以完成该特性所暗示的请求,则很显然应该这样做。
如果提供程序无法完成该请求,则应采用无提示方式将其忽略。
如果两个或多个属性发生冲突(例如,同时使用 ApplicationScopedSettingAttribute 和 UserScopedSettingAttribute 修饰的属性),则该提供程序将引发 ConfigurationException。
System.Configuration.SettingsProvider 类例子
继承层次结构
System.Configuration.Provider.ProviderBase
System.Configuration.SettingsProvider
System.Configuration.LocalFileSettingsProvider
线程安全
此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。
版本信息
.NET Framework 受以下版本支持:4、3.5、3.0、2.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1
适用平台
Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。