ConfigurationElementCollection を使用した ConfigurationSection の実装
このシナリオでは、カスタム構成セクションの実装中に例外が発生します。構成要素ハンドラー。この記事は、ConfigurationElementCollection を使用して ConfigurationSection を実装するプロセスを明確にすることを目的としています。
例外について
直面している例外は、IConfigurationSectionHandler インターフェイスが非推奨であるために発生します。サポートされなくなりました。
カスタム構成Section
非推奨の IConfigurationSectionHandler を使用する代わりに、カスタム ConfigurationSection クラスを作成する必要があります。これを ConfigurationSection の派生クラスとして定義し、さまざまなプロパティとメソッドを追加してカスタム セクションを構成します。たとえば、この場合、ServiceConfigurationSection は Services コレクション プロパティを保持します。
Custom ConfigurationElementCollection
要素のコレクションを定義するには、カスタム ConfigurationElementCollection クラスを作成します。このクラスは ConfigurationElementCollection を継承し、要素の追加、削除、およびアクセスのためのメソッドを実装する必要があります。このインスタンスでは、ServiceConfig 要素のコレクションを管理する ServiceCollection クラスをすでに定義しています。
ConfigurationSectionHandler
このアプローチでは、非推奨の IConfigurationSectionHandler インターフェイスは使用されません。代わりに、ConfigurationSection を継承し、構成セクションの処理に必要なプロパティとメソッドを実装するクラスを定義します。
サンプル コード
必要なコードの例を次に示します。
public class ServiceConfigurationSection : ConfigurationSection { [ConfigurationProperty("Services", IsDefaultCollection = false)] [ConfigurationCollection(typeof(ServiceCollection), AddItemName = "add", ClearItemsName = "clear", RemoveItemName = "remove")] public ServiceCollection Services { get; } } public class ServiceCollection : ConfigurationElementCollection { // ... (your custom element collection logic) }
構成へのアクセスData
構成されたデータにアクセスするには、ServiceConfigurationSection クラスをインスタンス化し、そのプロパティにアクセスします。たとえば、
ServiceConfigurationSection section = ConfigurationManager.GetSection("ServicesSection") as ServiceConfigurationSection; ServiceConfig config = section.Services[0];
次の手順に従うことで、カスタム ConfigurationSection を正常に実装できます。アプリケーション構成を読み取り、管理するための ConfigurationElementCollection。
以上が.NET で ConfigurationElementCollection を使用してカスタム ConfigurationSection を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。