ConfigurationPropertyAttributeとは? わかりやすく解説

ConfigurationPropertyAttribute クラス

メモ : このクラスは、.NET Framework version 2.0 で新しく追加されたものです。

.NET Framework が構成プロパティをインスタンス化するように、宣言によって指示します。このクラスは継承できません。

名前空間: System.Configuration
アセンブリ: System.Configuration (system.configuration.dll 内)
構文構文

<AttributeUsageAttribute(AttributeTargets.Property)> _
Public NotInheritable Class
 ConfigurationPropertyAttribute
    Inherits Attribute
Dim instance As ConfigurationPropertyAttribute
[AttributeUsageAttribute(AttributeTargets.Property)] 
public sealed class ConfigurationPropertyAttribute
 : Attribute
[AttributeUsageAttribute(AttributeTargets::Property)] 
public ref class ConfigurationPropertyAttribute
 sealed : public Attribute
/** @attribute AttributeUsageAttribute(AttributeTargets.Property) */ 
public final class ConfigurationPropertyAttribute
 extends Attribute
AttributeUsageAttribute(AttributeTargets.Property) 
public final class ConfigurationPropertyAttribute
 extends Attribute
解説解説

ConfigurationPropertyAttribute を使用して、.NET Framework にインスタンス化を指示する構成プロパティを装飾し、装飾のパラメータの値を使用してプロパティを初期化します。

メモメモ

カスタムの構成要素を作成する最も簡単な方法は、属性付き (宣言) モデルを使用することです。カスタムのパブリック プロパティを宣言し、それらを ConfigurationPropertyAttribute 属性で装飾します。.NET Framework は、この属性でマークされたプロパティごとに、リフレクションを使用して装飾のパラメータを読み取り、関連する ConfigurationProperty インスタンスを作成します。また、プログラム モデルも使用できます。この場合には、開発者が、カスタムのパブリック プロパティを宣言し、それらのコレクションを返す必要があります。

.NET Framework 構成システムには、カスタムの構成要素の作成時に使用できる属性の型が用意されています。2 種類の属性の型があります。

  1. .NET Framework に、カスタムの構成要素のプロパティをインスタンス化する方法を指示する型。次の属性がこれらの型に含まれます。

    • ConfigurationCollectionAttribute

    • ConfigurationPropertyAttribute

  2. .NET Framework に、カスタムの構成要素のプロパティを検証する方法を指示する型。次の属性がこれらの型に含まれます。

    • IntegerValidatorAttribute

    • LongValidatorAttribute

    • RegexStringValidatorAttribute

    • StringValidatorAttribute

    • TimeSpanValidatorAttribute

使用例使用例

ConfigurationPropertyAttribute 属性を使用して、カスタム ConfigurationSection オブジェクトのプロパティを装飾する方法を、次のコード例に示します。

Public Class SampleSection
   Inherits ConfigurationSection
   
   Public Sub New()
   End Sub 'New
   
   
    <ConfigurationProperty("fileName", _
    DefaultValue:="default.txt", _
    IsRequired:=True, _
    IsKey:=False), _
    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


    <ConfigurationProperty("maxUsers", _
    DefaultValue:=10000, _
    IsRequired:=False), _
    LongValidator(MinValue:=1, _
    MaxValue:=10000000, _
    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

    <ConfigurationProperty("maxIdleTime", _
    DefaultValue:="0:10:0", _
    IsRequired:=False), _
    TimeSpanValidator(MinValueString:="0:0:30", _
    MaxValueString:="5:00:0", _
    ExcludeRange:=False)> _
    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
   
public class SampleSection : 
    ConfigurationSection
{
    public SampleSection()
    {
    }

    [ConfigurationProperty("fileName", DefaultValue = "default.txt"
,
        IsRequired = true, IsKey = false)]
    [StringValidator(InvalidCharacters = " ~!@#$%^&*()[]{}/;'\"|\\"
,
        MinLength = 1, MaxLength = 60)]
    public string FileName
    {
        get
        {
            return (string)this["fileName"];
        }
        set
        {
            this["fileName"] = value;
        }
    }

    [ConfigurationProperty("maxUsers", DefaultValue = (long)10000,  
        IsRequired=false)]
    [LongValidator(MinValue = 1, MaxValue = 10000000,
        ExcludeRange = false)]
    public long MaxUsers
    {
        get
        {
            return (long)this["maxUsers"];
        }
        set
        {
            this["maxUsers"] = value;
        }
    }

    [ConfigurationProperty("maxIdleTime",
        DefaultValue = "0:10:0",
        IsRequired = false)]
    [TimeSpanValidator(MinValueString = "0:0:30", 
        MaxValueString = "5:00:0",
        ExcludeRange = false)]
    public TimeSpan MaxIdleTime
    {
        get
        {
            return (TimeSpan)this["maxIdleTime"];
        }
        set
        {
            this["maxIdleTime"] = value;
        }
    }
}

以下は、前の例で定義されていたカスタム セクションが含まれる構成ファイルからの抜粋です。

<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
  <configSections>
    <section name="custom" type="Samples.AspNet.SampleSection, ConfigurationPropertyAttribute"
 />
  </configSections>
  <custom fileName="Default.txt" 
    maxUsers="2500" maxIdleTime="00:10:00" />
</configuration>
継承階層継承階層
System.Object
   System.Attribute
    System.Configuration.ConfigurationPropertyAttribute
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
ConfigurationPropertyAttribute メンバ
System.Configuration 名前空間
ConfigurationProperty クラス
ConfigurationCollectionAttribute クラス
IntegerValidatorAttribute
LongValidatorAttribute
RegexStringValidatorAttribute
StringValidatorAttribute
TimeSpanValidatorAttribute

ConfigurationPropertyAttribute コンストラクタ

メモ : このコンストラクタは、.NET Framework version 2.0 で新しく追加されたものです。

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

名前空間: System.Configuration
アセンブリ: System.Configuration (system.configuration.dll 内)
構文構文

Dim name As String

Dim instance As New ConfigurationPropertyAttribute(name)
public ConfigurationPropertyAttribute (
    string name
)
public:
ConfigurationPropertyAttribute (
    String^ name
)
public ConfigurationPropertyAttribute (
    String name
)
public function ConfigurationPropertyAttribute
 (
    name : String
)

パラメータ

name

定義された ConfigurationProperty オブジェクトの名前。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
ConfigurationPropertyAttribute クラス
ConfigurationPropertyAttribute メンバ
System.Configuration 名前空間

ConfigurationPropertyAttribute プロパティ


パブリック プロパティパブリック プロパティ

  名前 説明
パブリック プロパティ DefaultValue 装飾されたプロパティの既定値を取得または設定します。
パブリック プロパティ IsDefaultCollection これが、装飾された構成プロパティに対する既定プロパティのコレクションかどうかを示す値を取得または設定します。
パブリック プロパティ IsKey これが、装飾された要素のプロパティに対する主要プロパティかどうかを示す値を取得または設定します。
パブリック プロパティ IsRequired 装飾された要素のプロパティが必要かどうかを示す値を取得または設定します。
パブリック プロパティ Name 装飾された構成要素のプロパティの名前を取得または設定します。
パブリック プロパティ Options 装飾された構成要素のプロパティの ConfigurationPropertyOptions を取得または設定します。
パブリック プロパティ TypeId  派生クラスに実装されている場合は、この Attribute の一意の識別子を取得します。 ( Attribute から継承されます。)
参照参照

関連項目

ConfigurationPropertyAttribute クラス
System.Configuration 名前空間
ConfigurationProperty クラス
ConfigurationCollectionAttribute クラス
IntegerValidatorAttribute
LongValidatorAttribute
RegexStringValidatorAttribute
StringValidatorAttribute
TimeSpanValidatorAttribute

ConfigurationPropertyAttribute メソッド


パブリック メソッドパブリック メソッド

( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド Equals  オーバーロードされます。 ( Attribute から継承されます。)
パブリック メソッド GetCustomAttribute  オーバーロードされます。 アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用された指定した型のカスタム属性を取得します。 ( Attribute から継承されます。)
パブリック メソッド GetCustomAttributes  オーバーロードされます。 アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用されたカスタム属性の配列を取得します。 ( Attribute から継承されます。)
パブリック メソッド GetHashCode  このインスタンスのハッシュ コードを返します。 ( Attribute から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 ( Object から継承されます。)
パブリック メソッド IsDefaultAttribute  派生クラス内でオーバーライドされたときに、このインスタンスの値が派生クラスの既定値かどうかを示します。 ( Attribute から継承されます。)
パブリック メソッド IsDefined  オーバーロードされます。 指定した型のカスタム属性が、アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用されているかどうかを判断します。 ( Attribute から継承されます。)
パブリック メソッド Match  派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。 ( Attribute から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。)
パブリック メソッド ToString  現在の Object を表す String を返します。 ( Object から継承されます。)
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

ConfigurationPropertyAttribute クラス
System.Configuration 名前空間
ConfigurationProperty クラス
ConfigurationCollectionAttribute クラス
IntegerValidatorAttribute
LongValidatorAttribute
RegexStringValidatorAttribute
StringValidatorAttribute
TimeSpanValidatorAttribute

ConfigurationPropertyAttribute メンバ

.NET Framework が構成プロパティをインスタンス化するように、宣言によって指示します。このクラスは継承できません。

ConfigurationPropertyAttribute データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド ConfigurationPropertyAttribute ConfigurationPropertyAttribute クラスの新しいインスタンスを初期化します。
パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド Equals  オーバーロードされます。 ( Attribute から継承されます。)
パブリック メソッド GetCustomAttribute  オーバーロードされます。 アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用された指定した型のカスタム属性を取得します。 (Attribute から継承されます。)
パブリック メソッド GetCustomAttributes  オーバーロードされます。 アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用されたカスタム属性の配列を取得します。 (Attribute から継承されます。)
パブリック メソッド GetHashCode  このインスタンスのハッシュ コードを返します。 (Attribute から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド IsDefaultAttribute  派生クラス内でオーバーライドされたときに、このインスタンスの値が派生クラスの既定値かどうかを示します。 (Attribute から継承されます。)
パブリック メソッド IsDefined  オーバーロードされます。 指定した型のカスタム属性が、アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用されているかどうかを判断します。 (Attribute から継承されます。)
パブリック メソッド Match  派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。 (Attribute から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。)
パブリック メソッド ToString  現在の Object を表す String を返します。 (Object から継承されます。)
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

ConfigurationPropertyAttribute クラス
System.Configuration 名前空間
ConfigurationProperty クラス
ConfigurationCollectionAttribute クラス
IntegerValidatorAttribute
LongValidatorAttribute
RegexStringValidatorAttribute
StringValidatorAttribute
TimeSpanValidatorAttribute



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「ConfigurationPropertyAttribute」の関連用語

ConfigurationPropertyAttributeのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ConfigurationPropertyAttributeのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS