ConfigurationProperty クラス

定義

属性または構成要素の子を表します。 このクラスは継承できません。

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

public ref class ConfigurationProperty sealed
public sealed class ConfigurationProperty
type ConfigurationProperty = class
Public NotInheritable Class ConfigurationProperty
継承
ConfigurationProperty

  1. 次のコード例は、カスタム セクションを作成するときに を ConfigurationProperty 使用する方法を示しています。
using System;
using System.Configuration;
using System.Collections;
using System.ComponentModel;

namespace ConfigurationPropertyExample
{
    // Define a custom section.
    // Shows how to use the ConfigurationProperty
    // class when defining a custom section.
    public sealed class CustomSection : ConfigurationSection
    {
        // The collection (property bag) that contains 
        // the section properties.
        private static ConfigurationPropertyCollection _Properties;

        // The FileName property.
        private static ConfigurationProperty _FileName;

        // The Alias property.
        private static ConfigurationProperty _Alias;

        // The MaxUsers property.
        private static ConfigurationProperty _MaxUsers;

        // The MaxIdleTime property.
        private static ConfigurationProperty _MaxIdleTime;

        // CustomSection constructor.
        static CustomSection()
        {
            // Initialize the _FileName property
            _FileName =
                new ConfigurationProperty("fileName",
                typeof(string), "default.txt");

            // Initialize the _MaxUsers property
            _MaxUsers =
                new ConfigurationProperty("maxUsers",
                typeof(long), (long)1000,
                ConfigurationPropertyOptions.None);

            // Initialize the _MaxIdleTime property
            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 property
            _Alias =
                new ConfigurationProperty("alias",
                typeof(string), "alias.txt");

            // Initialize the Property collection.
            _Properties = new ConfigurationPropertyCollection();
            _Properties.Add(_FileName);
            _Properties.Add(_Alias);
            _Properties.Add(_MaxUsers);
            _Properties.Add(_MaxIdleTime);
        }

        // Return the initialized property bag
        // for the configuration element.
        protected override ConfigurationPropertyCollection Properties
        {
            get
            {
                return _Properties;
            }
        }

        // Clear the property.
        public void ClearCollection()
        {
            Properties.Clear();
        }

        // Remove an element from the property collection.
        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;
            }
        }
    }
}
Imports System.Configuration
Imports System.Collections
Imports System.ComponentModel

' Define a custom section.
' Shows how to use the ConfigurationProperty
' class when defining a custom section.
Public NotInheritable Class CustomSection
    Inherits ConfigurationSection

    ' The collection (property bag) that contains 
    ' the section properties.
    Private Shared _Properties As ConfigurationPropertyCollection

    ' The FileName property.
    Private Shared _FileName As ConfigurationProperty

    ' The Alias property.
    Private Shared _Alias As ConfigurationProperty

    ' The MasUsers property.
    Private Shared _MaxUsers As ConfigurationProperty

    ' The MaxIdleTime property.
    Private Shared _MaxIdleTime As ConfigurationProperty

    ' CustomSection constructor.
    Shared Sub New()

        ' Initialize the _FileName property
        _FileName = New ConfigurationProperty( _
            "fileName", GetType(String), "default.txt")

        ' Initialize the _MaxUsers property
        _MaxUsers = New ConfigurationProperty( _
            "maxUsers", GetType(Long), 1000L, _
            ConfigurationPropertyOptions.None)

        ' Initialize the _MaxIdleTime property
        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 property
        _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()
        _Properties.Add(_FileName)
        _Properties.Add(_Alias)
        _Properties.Add(_MaxUsers)
        _Properties.Add(_MaxIdleTime)

    End Sub

    ' Return the initialized property bag
    ' for the configuration element.
    Protected Overrides ReadOnly Property Properties() _
    As ConfigurationPropertyCollection
        Get
            Return _Properties
        End Get
    End Property

    <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(ByVal value As TimeSpan)
            Me("maxIdleTime") = value
        End Set
    End Property
End Class

前の例のコードで使用した構成ファイルの抜粋を次に示します。

<configuration>
  <configSections>
    <section name="CustomSection" type="ConfigurationPropertyExample.CustomSection, ConfigurationPropertyExample"
      allowDefinition="Everywhere" allowExeDefinition="MachineToApplication"
      restartOnExternalChanges="true" />
  </configSections>
  <CustomSection fileName="override.txt" alias="alias.txt"
    maxUsers="1000" maxIdleTime="00:05:00" />
</configuration>

次の例は、コードで前のセクションを作成する方法を示しています。

// Define a custom section programmatically.
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>.
        // Call it "CustomSection2" since the file in this 
        // example already has "CustomSection".
        if (config.Sections["CustomSection"] == null)
        {
            customSection = new CustomSection();
            config.Sections.Add("CustomSection2", customSection);
            customSection.SectionInformation.ForceSave = true;
            config.Save(ConfigurationSaveMode.Full);
        }
    }
    catch (ConfigurationErrorsException err)
    {
        Console.WriteLine(err.ToString());
    }
}
' 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>.
        ' Since the config file already has "CustomSection",
        ' call this one "CustomSection2".
        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

注釈

次の例に示すような単純な ConfigurationElementCustomSection 場合、オブジェクトは ConfigurationProperty などの fileName属性を表します。

サブセクションを含むセクションなど、より複雑な構成要素の場合、authenticationConfigurationPropertyオブジェクトはオブジェクトと属性を表ConfigurationElementすことができます。

クラスは ConfigurationPropertyCollection 、構成要素の ConfigurationProperty 属性または ConfigurationElement オブジェクトのいずれかにすることができるオブジェクトのコレクションを表します。

クラスは ConfigurationProperty 、個々の構成設定を表します。 このクラスを使用すると、特定の構成エンティティ (属性または要素) の名前、型、既定値を取得または設定し、属性が必須か、要素キーか、または既定の要素コレクションを表すかを指定できます。

注意 (継承者)

すべてのConfigurationElementオブジェクトは、要素属性または子要素のConfigurationPropertyコレクションを表す オブジェクトの内部ConfigurationPropertyCollectionコレクションを作成します。

カスタマイズ不可能な情報と機能は、 プロパティによって ElementInformation 提供されるオブジェクトに ElementInformation 含まれています。

プログラムまたは宣言型 (属性付き) コーディング モデルを使用して、カスタム構成要素を作成できます。

  • プログラムモデル。 このモデルでは、各要素属性のプロパティを作成して、その値を取得または設定し、基になる ConfigurationElement 基底クラスの内部プロパティ バッグに追加する必要があります。

  • 宣言型モデル。 属性付きモデルとも呼ばれるこの単純なモデルを使用すると、プロパティを使用して要素属性を定義し、属性で装飾することができます。 これらの属性は、プロパティの種類とその既定値について ASP.NET 構成システムに指示します。 リフレクションによって取得されたこの情報を使用すると、ASP.NET 構成システムによって要素プロパティ オブジェクトが自動的に作成され、必要な初期化が実行されます。

コンストラクター

ConfigurationProperty(String, Type)

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

ConfigurationProperty クラスの新しいインスタンスを初期化します。

ConfigurationProperty(String, Type, Object)

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

ConfigurationProperty クラスの新しいインスタンスを初期化します。

ConfigurationProperty(String, Type, Object, ConfigurationPropertyOptions)

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

ConfigurationProperty クラスの新しいインスタンスを初期化します。

ConfigurationProperty(String, Type, Object, TypeConverter, ConfigurationValidatorBase, ConfigurationPropertyOptions)

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

ConfigurationProperty クラスの新しいインスタンスを初期化します。

ConfigurationProperty(String, Type, Object, TypeConverter, ConfigurationValidatorBase, ConfigurationPropertyOptions, String)

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

ConfigurationProperty クラスの新しいインスタンスを初期化します。

プロパティ

Converter

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

構成ファイルへの書き込みを目的として、この TypeConverter を XML 表現に変換するために使用する ConfigurationProperty を取得します。

DefaultValue

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

この ConfigurationProperty プロパティの既定値を取得します。

Description

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

ConfigurationProperty に関連付けられている説明を取得します。

IsAssemblyStringTransformationRequired

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

以前のバージョンの .NET Framework 用に構成プロパティのアセンブリ名をシリアル化する場合に、アセンブリ名の変換が必要かどうかを示します。

IsDefaultCollection

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

プロパティが要素の既定のコレクションであるかどうかを示す値を取得します。

IsKey

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

この ConfigurationProperty が、格納する側の ConfigurationElement オブジェクトのキーかどうかを示す値を取得します。

IsRequired

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

この ConfigurationProperty が必要かどうかを示す値を取得します。

IsTypeStringTransformationRequired

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

以前のバージョンの .NET Framework 用に構成プロパティの型名をシリアル化する場合に、型名の変換が必要かどうかを示します。

IsVersionCheckRequired

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

構成プロパティを XML にシリアル化するかどうかを判断するために、シリアル化時に構成プロパティの親構成セクションを照会する必要があるかどうかを示します。

Name

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

この ConfigurationProperty の名前を取得します。

Type

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

この ConfigurationProperty オブジェクトの型を取得します。

Validator

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

この ConfigurationValidatorAttribute オブジェクトを検証するために使用する ConfigurationProperty を取得します。

メソッド

Equals(Object)

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象

こちらもご覧ください