更新 : 2007 年 11 月
アプリケーション設定アーキテクチャでカスタム設定プロバイダを派生させるための基本クラスとして機能します。
名前空間 :
System.Configuration アセンブリ :
System (System.dll 内)
Public MustInherit Class SettingsProvider _
Inherits ProviderBase
Dim instance As SettingsProvider
public abstract class SettingsProvider : ProviderBase
public ref class SettingsProvider abstract : public ProviderBase
public abstract class SettingsProvider extends ProviderBase
public abstract class SettingsProvider extends ProviderBase
設定プロバイダは、アプリケーション設定アーキテクチャで使用する構成データを格納するための機構を定義します。.NET Framework には、既定の設定プロバイダ (LocalFileSettingsProvider) が 1 つ用意されています。このプロバイダは、ローカル ファイル システムに構成データを格納します。ただし、SettingsProvider 抽象クラスから派生させることで、その代わりとなるストレージ機構も作成できます。ラッパー クラスが使用するプロバイダは、ラッパー クラスを SettingsProviderAttribute で修飾して決定します。この属性が提供されない場合は、既定の LocalFileSettingsProvider が使用されます。
カスタム設定プロバイダを作成するときは、少なくとも、このクラスの 3 つのメソッド (GetPropertyValues、SetPropertyValues、および ApplicationName) の実装を提供する必要があります。
クライアント アプリケーションの場合、IApplicationSettingsProvider インターフェイスも実装して、より標準化された機能をカスタム プロバイダに追加できます。このインターフェイスは、主にバージョン管理のサポートを有効にする ApplicationSettingsBase クラスに存在するメソッドを反映します。
通常は、ストレージ リソースの競合を避けるため、単一インスタンス化されるように設定プロバイダを設計する必要があります。また、プロバイダはスレッド セーフにする必要もあります。これはプロバイダを、1 つのアプリケーション ドメイン内の複数のラッパー インスタンスから、または異なるドメインの複数のアプリケーションから同時に呼び出すことができるためです。
少なくとも、設定プロバイダは 3 つの属性 (ApplicationScopedSettingAttribute、UserScopedSettingAttribute、および DefaultSettingValueAttribute) を認識する必要があります。アプリケーション設定に適用できる属性のリスト全体については、「アプリケーション設定の属性」を参照してください。カスタム設定プロバイダは、設定プロパティに適用する属性を次の方法で解決する必要があります。
プロバイダは属性が示す要求を満たすことができる場合、その要求を実行します。
プロバイダが要求を実行できない場合は、その要求を無視します。
たとえば、プロパティが ApplicationScopedSettingAttribute と UserScopedSettingAttribute の両方で装飾されている場合など、複数のプロパティが競合するときは、プロバイダは ConfigurationException をスローする必要があります。
System..::.Object
System.Configuration.Provider..::.ProviderBase
System.Configuration..::.SettingsProvider
System.Configuration..::.LocalFileSettingsProvider
System.Web.ClientServices.Providers..::.ClientSettingsProvider
System.Web.Profile..::.ProfileProvider
この型のすべてのパブリック static (Visual Basic では Shared) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。
.NET Framework
サポート対象 : 3.5、3.0、2.0
参照
その他の技術情報