ConfigurationProviders
このプロパティは、1つ以上の一元化された構成プロバイダを有効にします。
宣言
// C# public static string ConfigurationProviders { get; set; }
プロパティ・タイプ
System.String
例外
-
ArgumentException:
ConfigurationProviders
に無効な構成プロバイダが含まれているか、None
が別のプロバイダで使用されている場合、または文字列が適切にフォーマットされていない場合にスローされます。 -
ArgumentNullExcpetion:
ConfigurationProviders
がnullに設定されている場合、スローされます
備考
このプロパティを使用すると、アプリケーションは、どのプロバイダを使用できるかに制限を適用できます。
表6-36 ConfigurationProvidersの値
Value | 説明 |
---|---|
|
すべての構成プロバイダを有効にします。これはデフォルト値です。 |
|
すべての構成プロバイダを無効にします。 |
|
Azureアプリケーション構成プロバイダを有効にします |
|
Azure Vault構成プロバイダを有効にします |
|
Oracle Cloud Infrastructure (OCI)構成プロバイダを有効にします |
|
OCI Vault構成プロバイダを有効にします |
|
ローカル・ファイル・プロバイダを有効にします |
この値では大文字と小文字が区別されません。
これらの値は、一元化された構成プロバイダとの接続を開く前に設定する必要があります。接続を開いた後は変更できません。値は、接続が開いたときにURLが使用されるまで検証されません。
構成プロバイダの任意の組合せを有効にできます。
OracleConfiguration.ConfigurationProviders = "File, OCIObject";
オプションで、プロバイダのリストをカッコで囲むことができます。たとえば、次のコード・サンプルは、Azureアプリケーション構成プロバイダおよびOCI構成プロバイダを有効にします。
OracleConfiguration.ConfigurationProviders = "(Azure, OCIObject)";
(Azure, OCIObject, Azure)
などの重複値は無視され、例外は作成されません。
(All, None)
や(None, OCIVault)
のように、リストでNone
を他のプロバイダとともに使用すると、例外がスローされます。
値を空のカッコ()
に設定すると、None
を使用する場合と同じになります。ただし、空の文字列の使用は無効であり、値の検証時にエラーが発生します。
(File, Azure, All)
のように、リストでAll
を他のプロバイダとともに使用すると、すべてのプロバイダが有効になります。
JSONベースのプロバイダの場合、JSON構成内で使用されるプロバイダも有効にする必要があります。たとえば、ファイル・プロバイダがOCI Vault URLを使用してパスワードを格納する場合、File
とOCIVault
の両方を有効にする必要があります。
この設定は、sqlnet.oraまたは.NET構成ファイルでも使用できます。優先順位は、高い順に次のとおりです。
-
OracleConfiguration.ConfigurationParameters
-
.NET構成
-
sqlnet.ora
または、文字列値を使用するかわりに、OracleConfigurationProvider
列挙を使用し、列挙をビット単位で使用して複数のプロバイダを有効にします。OracleConfiguration
ConfigurationProviders
プロパティのみがこれを許可します。Sqlnet.ora
CONFIGURATION_PROVIDERS
および.NET構成ファイルConfigurationProviders
は、この列挙の使用をサポートしていません。文字列値のみをサポートします。ConfigurationProviders
を使用して、Azureアプリケーション構成、OCIオブジェクトおよびAzure Vaultプロバイダを有効にするコード・サンプルを次に示します。
OracleConfiguration.ConfigurationProviders = OracleConfigurationProvider.Azure | OracleConfigurationProvider.OCIObject | OracleConfigurationProvider.AzureVault;