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;