ConfigurationProperty クラス
アセンブリ: System.Configuration (system.configuration.dll 内)


次の例に示す CustomSection のように、単純な ConfigurationElement の場合、ConfigurationProperty オブジェクトは、fileName などの属性を表します。
authentication など、サブセクションを含むセクションのように、もっと複雑な構成要素の場合、ConfigurationProperty オブジェクトは、属性だけでなく ConfigurationElement オブジェクトも表すことがあります。
ConfigurationPropertyCollection クラスは、構成要素の属性または ConfigurationElement オブジェクトとなる、ConfigurationProperty オブジェクトのコレクションを表します。
ConfigurationProperty クラスは、個々の構成設定を表します。このクラスを使用すると、特定の構成エンティティ (属性または要素) の名前、型、および既定値の取得または設定を行うことができ、また、属性が必須かどうか、属性が要素キーであるかどうか、または属性が既定の要素コレクションを表すかどうかを指定できます。
実装時の注意 すべての ConfigurationElement オブジェクトは、要素属性または子要素のコレクションを表す ConfigurationProperty オブジェクトの内部コレクションである ConfigurationPropertyCollection を作成します。 カスタマイズできない情報や機能は、ElementInformation プロパティが提供する ElementInformation オブジェクトに格納されます。 プログラム コーディング モデルまたは宣言 (属性付き) コーディング モデルを使用して、カスタム構成要素を作成できます。-
プログラム モデル。このモデルでは、要素属性ごとにプロパティを作成し、その値の取得と設定の両方、またはそのいずれかを行い、その値を基になる ConfigurationElement 基本クラスの内部プロパティ バッグに追加する必要があります。
-
宣言モデル。属性付きモデルとも呼ばれる、このより単純なモデルを使用すると、要素属性をプロパティを使用して定義し、さらに属性で装飾できます。これらの属性は、プロパティの型とその既定値について、ASP.NET 構成システムに指示します。リフレクションによって取得したこの情報を使用して、ASP.NET 構成システムは要素プロパティ オブジェクトを作成し、必要な初期化を実行します。

' Define a custom section. ' It shows how to use the ConfigurationProperty ' class when defining a custom section ' programmatically. ' The variables prefixed with the ' _ sign are ConfigurationProperty types. NotInheritable Public Class CustomSection Inherits ConfigurationSection ' CustomSection constructor. Shared Sub New() ' Initialize the _FileName _FileName = New ConfigurationProperty( _ "fileName", GetType(String), _ "default.txt") ' Initialize the _MaxUsers _MaxUsers = New ConfigurationProperty( _ "maxUsers", GetType(Long), _ Fix(1000), ConfigurationPropertyOptions.None) ' Initialize the _MaxIdleTime Dim minTime As TimeSpan = _ TimeSpan.FromSeconds(30) Dim maxTime As TimeSpan = _ TimeSpan.FromMinutes(5) Dim _TimeSpanValidator = _ New TimeSpanValidator(minTime, maxTime, False) _MaxIdleTime = New ConfigurationProperty( _ "maxIdleTime", GetType(TimeSpan), _ TimeSpan.FromMinutes(5), _ TypeDescriptor.GetConverter(GetType(TimeSpan)), _ _TimeSpanValidator, _ ConfigurationPropertyOptions.IsRequired, _ "[Description:This is the max idle time.]") ' Initialize the _Alias _Alias = New ConfigurationProperty( _ "alias", GetType(String), "alias.txt") ' Property collection initialization. ' The collection (property bag) that contains ' the properties is declared as: ' ConfigurationPropertyCollection _Properties; _Properties = New ConfigurationPropertyCollection() ' The collection (property bag) that contains ' the properties is declared as: ' ConfigurationPropertyCollection _Properties; _Properties.Add(_FileName) _Properties.Add(_Alias) _Properties.Add(_MaxUsers) _Properties.Add(_MaxIdleTime) End Sub 'New ' Return the initialized property bag ' for the configuration element. ' The collection (property bag) that contains ' the properties is declared as: ' ConfigurationPropertyCollection _Properties; Protected Overrides ReadOnly Property Properties() _ As ConfigurationPropertyCollection Get Return _Properties End Get End Property ' Clear the property. ' It deletes all the attributes of the ' configuration element represented by ' the property. Public Sub ClearCollection() Properties.Clear() End Sub 'ClearCollection ' Remove an element from the property collection. ' It deletes the specified attribute from the ' configuration element represented by ' the property. Public Sub RemoveCollectionElement(elName As String) Properties.Remove(elName) End Sub 'RemoveCollectionElement ' Get the property collection enumerator. Public Function GetCollectionEnumerator() As IEnumerator Return Properties.GetEnumerator() End Function 'GetCollectionEnumerator <StringValidator(InvalidCharacters:= _ " ~!@#$%^&*()[]{}/;'""|\", MinLength:=1, _ MaxLength:=60)> _ Public Property FileName() As String Get Return CStr(Me("fileName")) End Get Set(ByVal value As String) Me("fileName") = Value End Set End Property <StringValidator(InvalidCharacters:= _ " ~!@#$%^&*()[]{}/;'""|\", MinLength:=1, _ MaxLength:=60)> _ Public Property [Alias]() As String Get Return CStr(Me("alias")) End Get Set(ByVal value As String) Me("alias") = Value End Set End Property <LongValidator(MinValue:=1, _ MaxValue:=1000000, ExcludeRange:=False)> _ Public Property MaxUsers() As Long Get Return Fix(Me("maxUsers")) End Get Set(ByVal value As Long) Me("maxUsers") = Value End Set End Property Public Property MaxIdleTime() As TimeSpan Get Return CType(Me("maxIdleTime"), TimeSpan) End Get Set Me("maxIdleTime") = value End Set End Property End Class 'CustomSection
// Define a custom section. // It shows how to use the ConfigurationProperty // class when defining a custom section // programmatically. // The variables prefixed with the // _ sign are ConfigurationProperty types. public sealed class CustomSection : ConfigurationSection { // CustomSection constructor. static CustomSection() { // Initialize the _FileName _FileName = new ConfigurationProperty("fileName", typeof(string), "default.txt"); // Initialize the _MaxUsers _MaxUsers = new ConfigurationProperty("maxUsers", typeof(long), (long)1000, ConfigurationPropertyOptions.None); // Initialize the _MaxIdleTime TimeSpan minTime = TimeSpan.FromSeconds(30); TimeSpan maxTime = TimeSpan.FromMinutes(5); ConfigurationValidatorBase _TimeSpanValidator = new TimeSpanValidator(minTime, maxTime, false); _MaxIdleTime = new ConfigurationProperty("maxIdleTime", typeof(TimeSpan), TimeSpan.FromMinutes(5), TypeDescriptor.GetConverter(typeof(TimeSpan)), _TimeSpanValidator, ConfigurationPropertyOptions.IsRequired, "[Description:This is the max idle time.]"); // Initialize the _Alias _Alias = new ConfigurationProperty("alias", typeof(string), "alias.txt"); // Property collection initialization. // The collection (property bag) that contains // the properties is declared as: // ConfigurationPropertyCollection _Properties; _Properties = new ConfigurationPropertyCollection(); // The collection (property bag) that contains // the properties is declared as: // ConfigurationPropertyCollection _Properties; _Properties.Add(_FileName); _Properties.Add(_Alias); _Properties.Add(_MaxUsers); _Properties.Add(_MaxIdleTime); } // Return the initialized property bag // for the configuration element. // The collection (property bag) that contains // the properties is declared as: // ConfigurationPropertyCollection _Properties; protected override ConfigurationPropertyCollection Properties { get { return _Properties; } } // Clear the property. // It deletes all the attributes of the // configuration element represented by // the property. public void ClearCollection() { Properties.Clear(); } // Remove an element from the property collection. // It deletes the specified attribute from the // configuration element represented by // the property. public void RemoveCollectionElement(string elName) { Properties.Remove(elName); } // Get the property collection enumerator. public IEnumerator GetCollectionEnumerator() { return (Properties.GetEnumerator()); } [StringValidator(InvalidCharacters = " ~!@#$%^&*()[]{}/;'\"|\\" , MinLength = 1, MaxLength = 60)] public string FileName { get { return (string)this["fileName"]; } set { this["fileName"] = value; } } [StringValidator(InvalidCharacters = " ~!@#$%^&*()[]{}/;'\"|\\" , MinLength = 1, MaxLength = 60)] public string Alias { get { return (string)this["alias"]; } set { this["alias"] = value; } } [LongValidator(MinValue = 1, MaxValue = 1000000, ExcludeRange = false)] public long MaxUsers { get { return (long)this["maxUsers"]; } set { this["maxUsers"] = value; } } public TimeSpan MaxIdleTime { get { return (TimeSpan)this["maxIdleTime"]; } set { this["maxIdleTime"] = value; } } }
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="CustomSection" type="Samples.AspNet, ConfigurationProperty, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" allowDefinition="Everywhere" allowExeDefinition="MachineToApplication" restartOnExternalChanges="true" /> </configSections> <CustomSection fileName="default.txt" alias="alias.txt" maxUsers="1000" maxIdleTime="00:05:00" /> </configuration>
' Create a custom section. Shared Sub CreateSection() Try Dim customSection As CustomSection ' Get the current configuration file. Dim config As System.Configuration.Configuration = _ ConfigurationManager.OpenExeConfiguration( _ ConfigurationUserLevel.None) ' Create the section entry ' in the <configSections> and the ' related target section in <configuration>. If config.Sections("CustomSection") Is Nothing Then customSection = New CustomSection() config.Sections.Add("CustomSection", customSection) customSection.SectionInformation.ForceSave = True config.Save(ConfigurationSaveMode.Full) End If Catch err As ConfigurationErrorsException Console.WriteLine(err.ToString()) End Try End Sub 'CreateSection
// Create a custom section. static void CreateSection() { try { CustomSection customSection; // Get the current configuration file. System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration( ConfigurationUserLevel.None); // Create the section entry // in the <configSections> and the // related target section in <configuration>. if (config.Sections["CustomSection"] == null) { customSection = new CustomSection(); config.Sections.Add("CustomSection", customSection); customSection.SectionInformation.ForceSave = true; config.Save(ConfigurationSaveMode.Full); } } catch (ConfigurationErrorsException err) { Console.WriteLine(err.ToString()); } }

System.Configuration.ConfigurationProperty


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- ConfigurationProperty クラスのページへのリンク