ConfigurationSection クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
構成ファイル内のセクションを表します。
public ref class ConfigurationSection abstract : System::Configuration::ConfigurationElement
public abstract class ConfigurationSection : System.Configuration.ConfigurationElement
type ConfigurationSection = class
inherit ConfigurationElement
Public MustInherit Class ConfigurationSection
Inherits ConfigurationElement
- 継承
- 派生
例
次の例は、カスタム セクションをプログラムで実装する方法を示しています。
属性付きモデルを使用して実装されたカスタム セクションを実装して使用する方法を示す完全な例については、「」を参照してください ConfigurationElement。
// Define a custom section.
// The CustomSection type allows to define a custom section
// programmatically.
public sealed class CustomSection :
ConfigurationSection
{
// The collection (property bag) that contains
// the section properties.
private static ConfigurationPropertyCollection _Properties;
// Internal flag to disable
// property setting.
private static bool _ReadOnly;
// The FileName property.
private static readonly ConfigurationProperty _FileName =
new ConfigurationProperty("fileName",
typeof(string),"default.txt",
ConfigurationPropertyOptions.IsRequired);
// The MaxUsers property.
private static readonly ConfigurationProperty _MaxUsers =
new ConfigurationProperty("maxUsers",
typeof(long), (long)1000,
ConfigurationPropertyOptions.None);
// The MaxIdleTime property.
private static readonly ConfigurationProperty _MaxIdleTime =
new ConfigurationProperty("maxIdleTime",
typeof(TimeSpan), TimeSpan.FromMinutes(5),
ConfigurationPropertyOptions.IsRequired);
// CustomSection constructor.
public CustomSection()
{
// Property initialization
_Properties =
new ConfigurationPropertyCollection();
_Properties.Add(_FileName);
_Properties.Add(_MaxUsers);
_Properties.Add(_MaxIdleTime);
}
// This is a key customization.
// It returns the initialized property bag.
protected override ConfigurationPropertyCollection Properties
{
get
{
return _Properties;
}
}
private new bool IsReadOnly
{
get
{
return _ReadOnly;
}
}
// Use this to disable property setting.
private void ThrowIfReadOnly(string propertyName)
{
if (IsReadOnly)
throw new ConfigurationErrorsException(
"The property " + propertyName + " is read only.");
}
// Customizes the use of CustomSection
// by setting _ReadOnly to false.
// Remember you must use it along with ThrowIfReadOnly.
protected override object GetRuntimeObject()
{
// To enable property setting just assign true to
// the following flag.
_ReadOnly = true;
return base.GetRuntimeObject();
}
[StringValidator(InvalidCharacters = " ~!@#$%^&*()[]{}/;'\"|\\",
MinLength = 1, MaxLength = 60)]
public string FileName
{
get
{
return (string)this["fileName"];
}
set
{
// With this you disable the setting.
// Remember that the _ReadOnly flag must
// be set to true in the GetRuntimeObject.
ThrowIfReadOnly("FileName");
this["fileName"] = value;
}
}
[LongValidator(MinValue = 1, MaxValue = 1000000,
ExcludeRange = false)]
public long MaxUsers
{
get
{
return (long)this["maxUsers"];
}
set
{
this["maxUsers"] = value;
}
}
[TimeSpanValidator(MinValueString = "0:0:30",
MaxValueString = "5:00:0",
ExcludeRange = false)]
public TimeSpan MaxIdleTime
{
get
{
return (TimeSpan)this["maxIdleTime"];
}
set
{
this["maxIdleTime"] = value;
}
}
}
' Define a custom section.
' The CustomSection type allows to define a custom section
' programmatically.
NotInheritable Public Class CustomSection
Inherits ConfigurationSection
' The collection (property bag) that contains
' the section properties.
Private Shared _Properties As ConfigurationPropertyCollection
' Internal flag to disable
' property setting.
Private Shared _ReadOnly As Boolean
' The FileName property.
Private Shared _FileName As New ConfigurationProperty( _
"fileName", GetType(String), _
"default.txt", _
ConfigurationPropertyOptions.IsRequired)
' The MaxUsers property.
Private Shared _MaxUsers As New ConfigurationProperty( _
"maxUsers", GetType(Long), _
CType(1000, Long), _
ConfigurationPropertyOptions.None)
' The MaxIdleTime property.
Private Shared _MaxIdleTime As New ConfigurationProperty( _
"maxIdleTime", GetType(TimeSpan), _
TimeSpan.FromMinutes(5), _
ConfigurationPropertyOptions.IsRequired)
' CustomSection constructor.
Public Sub New()
' Property initialization
_Properties = _
New ConfigurationPropertyCollection()
_Properties.Add(_FileName)
_Properties.Add(_MaxUsers)
_Properties.Add(_MaxIdleTime)
End Sub
' This is a key customization.
' It returns the initialized property bag.
Protected Overrides ReadOnly Property Properties() _
As ConfigurationPropertyCollection
Get
Return _Properties
End Get
End Property
Private Shadows ReadOnly Property IsReadOnly() As Boolean
Get
Return _ReadOnly
End Get
End Property
' Use this to disable property setting.
Private Sub ThrowIfReadOnly(propertyName As String)
If IsReadOnly Then
Throw New ConfigurationErrorsException( _
"The property " + propertyName + " is read only.")
End If
End Sub
' Customizes the use of CustomSection
' by setting _ReadOnly to false.
' Remember you must use it along with ThrowIfReadOnly.
Protected Overrides Function GetRuntimeObject() As Object
' To enable property setting just assign true to
' the following flag.
_ReadOnly = True
Return MyBase.GetRuntimeObject()
End Function 'GetRuntimeObject
<StringValidator( _
InvalidCharacters:=" ~!@#$%^&*()[]{}/;'""|\", _
MinLength:=1, MaxLength:=60)> _
Public Property FileName() As String
Get
Return CStr(Me("fileName"))
End Get
Set(ByVal value As String)
' With this you disable the setting.
' Remember that the _ReadOnly flag must
' be set to true in the GetRuntimeObject.
ThrowIfReadOnly("FileName")
Me("fileName") = 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
<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
End Class
次の例は、前の例に適用される構成ファイルの抜粋です。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="CustomSection" type="Samples.AspNet. CustomSection, CustomConfigurationSection, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" allowDefinition="Everywhere" allowExeDefinition="MachineToApplication" restartOnExternalChanges="true" />
</configSections>
<CustomSection fileName="default.txt" maxUsers="1000" maxIdleTime="00:15:00" />
</configuration>
注釈
クラスを ConfigurationSection 使用して、カスタム セクション型を実装します。 クラスを ConfigurationSection 拡張して、カスタム構成セクションへのカスタム処理とプログラムによるアクセスを提供します。 カスタム構成セクションの使用方法については、「 方法: ConfigurationSection を使用してカスタム構成セクションを作成する」を参照してください。
セクションは、その処理型を 要素のエントリに configSections
登録します。 例については、「例」セクションに示されている構成ファイルの抜粋を参照してください。
注意
以前のバージョンの .NET Framework では、構成セクション ハンドラーを使用して構成設定をプログラムで変更していました。 これで、すべての既定の構成セクションは、 クラスを拡張 ConfigurationSection するクラスによって表されます。
注意 (実装者)
プログラムまたは宣言型 (属性付き) コーディング モデルを使用して、カスタム構成セクションを作成できます。
プログラムモデル。 このモデルでは、セクション属性ごとにプロパティを作成して値を取得または設定し、基になる ConfigurationElement 基底クラスの内部プロパティ バッグに追加する必要があります。
宣言型モデル。 属性付きモデルとも呼ばれるこの単純なモデルを使用すると、プロパティを使用して属性で修飾することでセクション属性を定義できます。 これらの属性は、プロパティの種類とその既定値について ASP.NET 構成システムに指示します。 リフレクションによって取得されたこの情報を使用して、ASP.NET 構成システムはセクション プロパティ オブジェクトを作成し、必要な初期化を実行します。
クラスを Configuration 使用すると、構成ファイルを編集するためのプログラムによるアクセスが許可されます。 これらのファイルには、次のように読み取りまたは書き込み用にアクセスできます。
読み取り。 または GetSectionGroup(String) を使用GetSection(String)して、構成情報を読み取る。 読み取りを行うユーザーまたはプロセスには、次のアクセス許可が必要です。
現在の構成階層レベルの構成ファイルに対する読み取りアクセス許可。
すべての親構成ファイルに対する読み取りアクセス許可。
アプリケーションで独自の構成への読み取り専用アクセスが必要な場合は、Web アプリケーションの場合はオーバーロードされたメソッド、GetSection(String)クライアント アプリケーションの場合は メソッドを使用GetSectionすることをお勧めします。
これらのメソッドは、現在のアプリケーションのキャッシュされた構成値へのアクセスを提供します。これは、 クラスよりもパフォーマンスが Configuration 優れています。
注: パラメーターを受け取るpath
静的GetSection
メソッドを使用する場合、path
パラメーターはコードが実行されているアプリケーションを参照する必要があります。それ以外の場合、パラメーターは無視され、現在実行中のアプリケーションの構成情報が返されます。
書き込み。 構成情報を Save 書き込むには、いずれかの方法を使用します。 書き込みを行うユーザーまたはプロセスには、次のアクセス許可が必要です。
現在の構成階層レベルの構成ファイルとディレクトリに対する書き込みアクセス許可。
すべての構成ファイルに対する読み取りアクセス許可。
コンストラクター
ConfigurationSection() |
ConfigurationSection クラスの新しいインスタンスを初期化します。 |
プロパティ
メソッド
適用対象
こちらもご覧ください
.NET