ConfigurationProperty Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa um atributo ou um filho de um elemento de configuração. Essa classe não pode ser herdada.
Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código.
public ref class ConfigurationProperty sealed
public sealed class ConfigurationProperty
type ConfigurationProperty = class
Public NotInheritable Class ConfigurationProperty
- Herança
-
ConfigurationProperty
Exemplos
- O exemplo de código a seguir mostra como usar o ConfigurationProperty quando você cria uma seção personalizada.
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
Veja a seguir um trecho do arquivo de configuração usado pelo código no exemplo anterior.
<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>
O exemplo a seguir mostra como criar a seção anterior no código.
// 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
Comentários
No caso de um simples ConfigurationElement, como o CustomSection
mostrado no próximo exemplo, os ConfigurationProperty objetos representam atributos como fileName
.
No caso de elementos de configuração mais complexos, como uma seção que contém subseções, por exemplo authentication
, , os ConfigurationProperty objetos podem representar ConfigurationElement objetos, bem como atributos.
A ConfigurationPropertyCollection classe representa a coleção dos ConfigurationProperty objetos que podem ser atributos ou ConfigurationElement objetos de um elemento de configuração.
A ConfigurationProperty classe representa uma configuração individual. Essa classe permite que você obtenha ou defina o nome, o tipo e o valor padrão de uma entidade de configuração específica (atributo ou elemento) e especifique se o atributo é necessário, é uma chave de elemento ou representa uma coleção de elementos padrão.
Notas aos Herdeiros
Cada ConfigurationElement objeto cria uma coleção interna ConfigurationPropertyCollection de ConfigurationProperty objetos que representa os atributos de elemento ou uma coleção de elementos filho.
Informações e funcionalidades não personalizáveis estão contidas em um ElementInformation objeto fornecido pela ElementInformation propriedade .
Você pode usar um modelo de codificação programático ou declarativo (atribuído) para criar um elemento de configuração personalizado.
Modelo programático. Esse modelo exige que você crie uma propriedade para cada atributo de elemento para obter e/ou definir seu valor e adicioná-lo ao recipiente de propriedades interno da classe base subjacente ConfigurationElement .
Modelo Declarativo. Esse modelo mais simples, também chamado de modelo atribuído, permite definir um atributo de elemento usando uma propriedade e decorá-lo com atributos. Esses atributos instruem o sistema de configuração ASP.NET sobre os tipos de propriedade e seus valores padrão. Com essas informações, obtidas por meio da reflexão, o sistema de configuração de ASP.NET cria os objetos de propriedade do elemento para você e executa a inicialização necessária.
Construtores
ConfigurationProperty(String, Type) |
Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código. Inicializa uma nova instância da classe ConfigurationProperty. |
ConfigurationProperty(String, Type, Object) |
Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código. Inicializa uma nova instância da classe ConfigurationProperty. |
ConfigurationProperty(String, Type, Object, ConfigurationPropertyOptions) |
Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código. Inicializa uma nova instância da classe ConfigurationProperty. |
ConfigurationProperty(String, Type, Object, TypeConverter, ConfigurationValidatorBase, ConfigurationPropertyOptions) |
Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código. Inicializa uma nova instância da classe ConfigurationProperty. |
ConfigurationProperty(String, Type, Object, TypeConverter, ConfigurationValidatorBase, ConfigurationPropertyOptions, String) |
Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código. Inicializa uma nova instância da classe ConfigurationProperty. |
Propriedades
Converter |
Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código. Obtém o TypeConverter usado para converter esse ConfigurationProperty em uma representação XML para gravar no arquivo de configuração. |
DefaultValue |
Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código. Obtém o valor padrão desta propriedade ConfigurationProperty. |
Description |
Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código. Obtém a descrição associada ao ConfigurationProperty. |
IsAssemblyStringTransformationRequired |
Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código. Indica se o nome do assembly para a propriedade de configuração requer transformação quando ele é serializado para uma versão anterior do .NET Framework. |
IsDefaultCollection |
Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código. Obtém um valor que indica se a propriedade é a coleção padrão de um elemento. |
IsKey |
Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código. Obtém um valor que indica se esta ConfigurationProperty é a chave para o objeto ConfigurationElement que a contém. |
IsRequired |
Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código. Obtém um valor que indica se esta ConfigurationProperty é necessária. |
IsTypeStringTransformationRequired |
Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código. Indica se o nome do tipo para a propriedade de configuração requer transformação quando ele é serializado para uma versão anterior do .NET Framework. |
IsVersionCheckRequired |
Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código. Indica se a seção de configuração pai da propriedade de configuração é consultada no tempo de serialização para determinar se a propriedade de configuração deve ser serializada em XML. |
Name |
Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código. Obtém o nome deste ConfigurationProperty. |
Type |
Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código. Obtém o tipo desse objeto ConfigurationProperty. |
Validator |
Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código. Obtém o ConfigurationValidatorAttribute, que é usado para validar esse objeto ConfigurationProperty. |
Métodos
Equals(Object) |
Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código. Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
GetHashCode() |
Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código. Serve como a função de hash padrão. (Herdado de Object) |
GetType() |
Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código. Obtém o Type da instância atual. (Herdado de Object) |
MemberwiseClone() |
Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código. Cria uma cópia superficial do Object atual. (Herdado de Object) |
ToString() |
Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código. Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |