メモ : このクラスは、.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 種類の属性の型があります。
-
.NET Framework に、カスタムの構成要素のプロパティをインスタンス化する方法を指示する型。次の属性がこれらの型に含まれます。
-
.NET Framework に、カスタムの構成要素のプロパティを検証する方法を指示する型。次の属性がこれらの型に含まれます。
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) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
.NET Framework
サポート対象 : 2.0