ConfigurationValidatorAttribute Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Служит базовым классом для типов атрибутов проверяющего элемента управления System.Configuration.
public ref class ConfigurationValidatorAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Property)]
public class ConfigurationValidatorAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Property)>]
type ConfigurationValidatorAttribute = class
inherit Attribute
Public Class ConfigurationValidatorAttribute
Inherits Attribute
- Наследование
- Производный
- Атрибуты
Примеры
В следующих примерах кода показано, как создать два пользовательских проверяющих элемента управления с помощью ConfigurationValidatorAttribute типа . В первом примере выполняется проверка с использованием жестко заданных параметров; во втором примере выполняется проверка с использованием параметров, назначенных ему во время применения к свойству связанного раздела. Этот пример кода также содержит три вспомогательных файла. Первый файл содержит настраиваемый раздел, использующий средства проверки, описанные выше, второй файл содержит пользовательский тип преобразователя, а третий файл содержит консольное приложение, которое создает и использует пользовательские проверяющие элементы, и раздел, содержащий их.
В следующем примере кода показано, как создать фиксированный проверяющий элемент управления с жестко заданными параметрами.
using System;
using System.Collections.Generic;
using System.Collections;
using System.Text;
using System.Configuration;
namespace Samples.AspNet
{
// Show how to create a custom fixed
// validator. That is a validator whose
// validation parameters are hard code in this
// type.
public class FixedValidator :
ConfigurationValidatorBase
{
public override bool CanValidate(Type type)
{
return type == typeof(Automobile);
}
public override void Validate(object value)
{
ArrayList make = new ArrayList();
make.Add("Ferrari");
make.Add("Porsche");
make.Add("Lamborghini");
int minYear = 2004;
long maxMiles = 100;
string color = "red";
Automobile car = (Automobile)value;
try
{
if (!make.Contains(car.Make))
{
throw new ConfigurationErrorsException(
"My dream car is not made by " + car.Make);
}
// Make sure the year is valid
if (car.Year < minYear)
{
throw new ConfigurationErrorsException(
"My dream car cannot be older than " + minYear.ToString());
}
// Make sure the car can still run on its own
if (car.Miles > maxMiles)
{
throw new ConfigurationErrorsException(
"My dream car drive odometer cannot read more than " +
maxMiles.ToString() + " miles");
}
// Validate color
if (car.Color.ToLower() != color)
{
throw new ConfigurationErrorsException(
"My dream car can oly be " + color);
}
}
catch (ConfigurationErrorsException err)
{
Console.WriteLine(err.ToString());
}
}
}
}
Imports System.Collections.Generic
Imports System.Collections
Imports System.Text
Imports System.Configuration
' Show how to create a custom fixed
' validator. That is a validator whose
' validation parameters are hard code in this
' type.
Public Class FixedValidator
Inherits ConfigurationValidatorBase
Public Overrides Function CanValidate( _
ByVal type As Type) As Boolean
Return type Is GetType(Automobile)
End Function 'CanValidate
Public Overrides Sub Validate(ByVal value _
As Object)
Dim make As New ArrayList()
make.Add("Ferrari")
make.Add("Porsche")
make.Add("Lamborghini")
Dim minYear As Integer = 2004
Dim maxMiles As Long = 100
Dim color As String = "red"
Dim car As Automobile = CType(value, Automobile)
Try
If Not make.Contains(car.Make) Then
Throw New ConfigurationErrorsException( _
"My dream car is not made by " + car.Make)
End If
' Make sure the year is valid
If car.Year < minYear Then
Throw New ConfigurationErrorsException( _
"My dream car cannot be older than " + _
minYear.ToString())
End If
' Make sure the car can still run on its own
If car.Miles > maxMiles Then
Throw New ConfigurationErrorsException( _
"My dream car drive odometer cannot read more than " + _
maxMiles.ToString() + " miles")
End If
' Validate color
If car.Color.ToLower() <> color Then
Throw New ConfigurationErrorsException( _
"My dream car can oly be " + color)
End If
Catch err As ConfigurationErrorsException
Console.WriteLine(err.ToString())
End Try
End Sub
End Class
В следующем примере кода показано, как создать программируемый проверяющий элемент управления.
using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
namespace Samples.AspNet
{
// Show how to create a custom programmable
// validator. That is a validator whose
// validation parameters can be passed when the
// validator is applied to a property.
public class ProgrammableValidator :
ConfigurationValidatorBase
{
private string pmake;
private string pcolor;
private long pmaxMiles;
private int pminYear;
public ProgrammableValidator(string make, string color,
long maxMiles, int minYear)
{
pmake = make;
pcolor = color;
pminYear = minYear;
pmaxMiles = maxMiles;
}
public override bool CanValidate(Type type)
{
return type == typeof(Automobile);
}
public override void Validate(object value)
{
Automobile car = (Automobile)value;
try
{
// Validate make
if (car.Make != pmake)
{
throw new ConfigurationErrorsException(
"I do not by cars made by " + car.Make);
}
// Validate color
if (car.Color != pcolor)
{
throw new ConfigurationErrorsException(
"My commute car must be " + pcolor);
}
// Validate year
if (car.Year < pminYear)
{
throw new ConfigurationErrorsException(
"It's about time you get a new car.");
}
// Validate miles
if (car.Miles > pmaxMiles)
{
throw new ConfigurationErrorsException(
"Don't take too long trips with that car.");
}
}
catch (ConfigurationErrorsException err)
{
Console.WriteLine(err.ToString());
}
}
}
public class ProgrammableValidatorAttribute :
ConfigurationValidatorAttribute
{
private string pmake;
private string pcolor;
private int pminYear;
private long pmaxMiles;
public string Make
{
get { return pmake; }
set { pmake = value; }
}
public string Color
{
get { return pcolor; }
set { pcolor = value; }
}
public int MinYear
{
get { return pminYear; }
set { pminYear = value; }
}
public long MaxMiles
{
get { return pmaxMiles; }
set { pmaxMiles = value; }
}
public ProgrammableValidatorAttribute(string make, string color,
long miles, int year)
{
pmake = make;
pcolor = color;
pminYear = year;
pmaxMiles = miles;
}
public override ConfigurationValidatorBase ValidatorInstance
{
get
{
return new ProgrammableValidator(pmake, pcolor, pmaxMiles, pminYear);
}
}
}
}
Imports System.Collections.Generic
Imports System.Text
Imports System.Configuration
' Show how to create a custom programmable
' validator. That is a validator whose
' validation parameters can be passed when the
' validator is applied to a property.
Public Class ProgrammableValidator
Inherits ConfigurationValidatorBase
Private pmake As String
Private pcolor As String
Private pmaxMiles As Long
Private pminYear As Integer
Public Sub New(ByVal make As String, ByVal color As String, ByVal maxMiles As Long, ByVal minYear As Integer)
pmake = make
pcolor = color
pminYear = minYear
pmaxMiles = maxMiles
End Sub
Public Overrides Function CanValidate( _
ByVal type As Type) As Boolean
Return type Is GetType(Automobile)
End Function 'CanValidate
Public Overrides Sub Validate(ByVal value As Object)
Dim car As Automobile = CType(value, Automobile)
Try
' Validate make
If car.Make <> pmake Then
Throw New ConfigurationErrorsException( _
"I do not by cars made by " + car.Make)
End If
' Validate color
If car.Color <> pcolor Then
Throw New ConfigurationErrorsException( _
"My commute car must be " + pcolor)
End If
' Validate year
If car.Year < pminYear Then
Throw New ConfigurationErrorsException( _
"It's about time you get a new car.")
End If
' Validate miles
If car.Miles > pmaxMiles Then
Throw New ConfigurationErrorsException( _
"Don't take too long trips with that car.")
End If
Catch err As ConfigurationErrorsException
Console.WriteLine(err.ToString())
End Try
End Sub
End Class
Public Class ProgrammableValidatorAttribute
Inherits ConfigurationValidatorAttribute
Private pmake As String
Private pcolor As String
Private pminYear As Integer
Private pmaxMiles As Long
Public Property Make() As String
Get
Return pmake
End Get
Set
pmake = value
End Set
End Property
Public Property Color() As String
Get
Return pcolor
End Get
Set
pcolor = value
End Set
End Property
Public Property MinYear() As Integer
Get
Return pminYear
End Get
Set
pminYear = value
End Set
End Property
Public Property MaxMiles() As Long
Get
Return pmaxMiles
End Get
Set
pmaxMiles = value
End Set
End Property
Public Sub New(ByVal make As String, _
ByVal color As String, ByVal miles As Long, _
ByVal year As Integer)
pmake = make
pcolor = color
pminYear = year
pmaxMiles = miles
End Sub
Public Overrides ReadOnly Property ValidatorInstance() _
As ConfigurationValidatorBase
Get
Return New ProgrammableValidator(pmake, _
pcolor, pmaxMiles, pminYear)
End Get
End Property
End Class
В следующем примере кода показано, как создать пользовательский раздел с помощью предыдущих проверяющих элементов.
using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
using System.ComponentModel;
using System.Globalization;
namespace Samples.AspNet
{
// Define the distinctive
// charecteristics of a car.
public sealed class Automobile
{
public enum specification
{
make=0, color=1, miles=2, year=3, picture=4
};
public string Make;
public string Color;
public int Year;
public long Miles;
public string Picture;
}
// Define a custom section to select a car.
// This section contains two properties one
// to define a commute car the other
// to define a dream car.
// This generates a configuration section such as:
// <Cars commute="Make:AlfaRomeo Color:Blue Miles:10000 Year:2002"
// dream="Make:Ferrari Color:Red Miles:10 Year:2005" />
public sealed class SelectCar :
ConfigurationSection
{
// Define your commute car.
// The ProgrammableValidatorAttribute allows you to define the
// chracteristics of your commute car by changing
// the values you pass to the next.
// See the ProgrammableValidatorAttribute for details.
[ProgrammableValidator("AlfaRomeo", "Blue", 10000, 2002)]
// The AutomobileConverter converts between the Automobile
// object and its related configuration commute attribute
// string value.
// Refer to AutomobileConverter for details.
[TypeConverter(typeof(AutomobileConverter))]
// Define the name of the configuration attribute to associate
// with this property. Enter the default values.
// Remember these default values must reflect the parameters
// you entered in the ProgrammableValidator above.
[ConfigurationProperty("commute", DefaultValue = "Make:AlfaRomeo Color:Blue Miles:10000 Year:2002")]
public Automobile Commute
{
get
{
return (Automobile)this["commute"];
}
set
{
this["commute"] = value;
}
}
// Apply the FixedValidatorAttribute. Here your choice
// (dream) is predetermined by the values contained in the
// FixedValidatorAttribute. Being a dream, you would think
// otherwise but that's not the case.
// See the FixedValidatorAttribute to choose your dream.
[ConfigurationValidatorAttribute(
typeof(FixedValidator))]
// The AutomobileConverter converts between the Automobile
// object and its related configuration dream attribute
// string value.
// Refer to AutomobileConverter for details.
[TypeConverter(typeof(AutomobileConverter))]
[ConfigurationProperty("dream", DefaultValue = "Make:Ferrari Color:Red Miles:10 Year:2005")]
public Automobile Dream
{
get
{
return (Automobile)this["dream"];
}
set
{
this["dream"] = value;
}
}
public SelectCar()
{
// Here you put your
// initializations, if necessary.
}
}
}
Imports System.Collections.Generic
Imports System.Text
Imports System.Configuration
Imports System.ComponentModel
Imports System.Globalization
' Define the distinctive
' charecteristics of a car.
NotInheritable Public Class Automobile
Public Enum specification
make = 0
color = 1
miles = 2
year = 3
picture = 4
End Enum 'specification
Public Make As String
Public Color As String
Public Year As Integer
Public Miles As Long
Public Picture As String
End Class
' Define a custom section to select a car.
' This section contains two properties one
' to define a commute car the other
' to define a dream car.
' This generates a configuration section such as:
' <Cars commute="Make:AlfaRomeo Color:Blue Miles:10000 Year:2002"
' dream="Make:Ferrari Color:Red Miles:10 Year:2005" />
NotInheritable Public Class SelectCar
Inherits ConfigurationSection
' Define your commute car.
' The ProgrammableValidatorAttribute allows you to define the
' chracteristics of your commute car by changing
' the values you pass to the next.
' See the ProgrammableValidatorAttribute for details.
<ProgrammableValidator("AlfaRomeo", "Blue", 10000, 2002), _
TypeConverter(GetType(AutomobileConverter)), _
ConfigurationProperty("commute", _
DefaultValue:="Make:AlfaRomeo Color:Blue Miles:10000 Year:2002")> _
Public Property Commute() As Automobile
' The AutomobileConverter converts between the Automobile
' object and its related configuration commute attribute
' string value.
' Refer to AutomobileConverter for details.
' Define the name of the configuration attribute to associate
' with this property. Enter the default values.
' Remember these default values must reflect the parameters
' you entered in the ProgrammableValidator above.
Get
Return CType(Me("commute"), Automobile)
End Get
Set(ByVal value As Automobile)
Me("commute") = value
End Set
End Property
' Apply the FixedValidatorAttribute. Here your choice
' (dream) is predetermined by the values contained in the
' FixedValidatorAttribute. Being a dream, you would think
' otherwise but that's not the case.
' See the FixedValidatorAttribute to choose your dream.
<ConfigurationValidatorAttribute(GetType(FixedValidator)), _
TypeConverter(GetType(AutomobileConverter)), _
ConfigurationProperty("dream", _
DefaultValue:="Make:Ferrari Color:Red Miles:10 Year:2005")> _
Public Property Dream() As Automobile
' The AutomobileConverter converts between the Automobile
' object and its related configuration dream attribute
' string value.
' Refer to AutomobileConverter for details.
Get
Return CType(Me("dream"), Automobile)
End Get
Set(ByVal value As Automobile)
Me("dream") = value
End Set
End Property
Public Sub New()
End Sub
End Class
' Here you put your
' initializations, if necessary.
В следующем примере кода показано, как создать пользовательский преобразователь.
using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
using System.ComponentModel;
using System.Globalization;
namespace Samples.AspNet
{
// The AutomobileConverter converts between the Automobile
// object and its related configuration commute and
// dream attribute string values.
public sealed class AutomobileConverter :
ConfigurationConverterBase
{
internal bool ValidateType(object value,
Type expected)
{
bool result;
if ((value != null) &&
(value.GetType() != expected))
result = false;
else
result = true;
return result;
}
public override bool CanConvertTo(
ITypeDescriptorContext ctx, Type type)
{
return (type == typeof(Automobile));
}
public override bool CanConvertFrom(
ITypeDescriptorContext ctx, Type type)
{
return (type == typeof(Automobile));
}
public override object ConvertTo(
ITypeDescriptorContext ctx, CultureInfo ci,
object value, Type type)
{
string data;
if (ValidateType(value, typeof(Automobile)))
{
string make = (string)(((Automobile)value).Make);
string color = (string)(((Automobile)value).Color);
string miles = (string)(((Automobile)value).Miles.ToString());
string year = (string)(((Automobile)value).Year.ToString());
data = "Make:" + make + " Color:" + color +
" Miles:" + miles + " Year:" + year;
}
else
{
data = "Invalid type";
}
return data;
}
public override object ConvertFrom(
ITypeDescriptorContext ctx, CultureInfo ci, object data)
{
Automobile selectedCar =
new Automobile();
string carInfo = (string)data;
string[] carSpecs = carInfo.Split(new Char[] { ' ' });
// selectedCar.Make = carSpecs[0].ToString();
// selectedCar.Make = carSpecs[0].ToString();
string make =
carSpecs[(int)Automobile.specification.make].ToString();
string color =
carSpecs[(int)Automobile.specification.color].ToString();
string miles =
carSpecs[(int)Automobile.specification.miles].ToString();
string year =
carSpecs[(int)Automobile.specification.year].ToString();
selectedCar.Make =
make.Substring(make.IndexOf(":")+1);
selectedCar.Color =
color.Substring(color.IndexOf(":") + 1);
selectedCar.Miles =
Convert.ToInt32(miles.Substring(miles.IndexOf(":") + 1));
selectedCar.Year =
Convert.ToInt32(year.Substring(year.IndexOf(":") + 1));
return selectedCar;
}
}
}
Imports System.Collections.Generic
Imports System.Text
Imports System.Configuration
Imports System.ComponentModel
Imports System.Globalization
' The AutomobileConverter converts between the Automobile
' object and its related configuration commute and
' dream attribute string values.
NotInheritable Public Class AutomobileConverter
Inherits ConfigurationConverterBase
Friend Function ValidateType(ByVal value As Object, _
ByVal expected As Type) As Boolean
Dim result As Boolean
If Not (value Is Nothing) _
AndAlso value.GetType() IsNot expected Then
result = False
Else
result = True
End If
Return result
End Function 'ValidateType
Public Overrides Function CanConvertTo(ByVal ctx _
As ITypeDescriptorContext, ByVal type As Type) As Boolean
Return type Is GetType(Automobile)
End Function 'CanConvertTo
Public Overrides Function CanConvertFrom(ByVal ctx _
As ITypeDescriptorContext, ByVal type As Type) As Boolean
Return type Is GetType(Automobile)
End Function 'CanConvertFrom
Public Overrides Function ConvertTo(ByVal ctx _
As ITypeDescriptorContext, ByVal ci As CultureInfo, _
ByVal value As Object, ByVal type As Type) As Object
Dim data As String
If ValidateType(value, GetType(Automobile)) Then
Dim make As String = _
CStr(CType(value, Automobile).Make)
Dim color As String = _
CStr(CType(value, Automobile).Color)
Dim miles As String = _
CStr(CType(value, Automobile).Miles.ToString())
Dim year As String = _
CStr(CType(value, Automobile).Year.ToString())
data = "Make:" + make + " Color:" + color + _
" Miles:" + miles + " Year:" + year
Else
data = "Invalid type"
End If
Return data
End Function 'ConvertTo
Public Overrides Function ConvertFrom(ByVal ctx _
As ITypeDescriptorContext, ByVal ci As CultureInfo, _
ByVal data As Object) As Object
Dim selectedCar As New Automobile()
Dim carInfo As String = CStr(data)
Dim carSpecs As String() = carInfo.Split(New [Char]() {" "c})
' selectedCar.Make = carSpecs[0].ToString();
' selectedCar.Make = carSpecs[0].ToString();
Dim make As String = _
carSpecs(Fix(Automobile.specification.make)).ToString()
Dim color As String = _
carSpecs(Fix(Automobile.specification.color)).ToString()
Dim miles As String = _
carSpecs(Fix(Automobile.specification.miles)).ToString()
Dim year As String = _
carSpecs(Fix(Automobile.specification.year)).ToString()
selectedCar.Make = _
make.Substring(make.IndexOf(":") + 1)
selectedCar.Color = _
color.Substring(color.IndexOf(":") + 1)
selectedCar.Miles = _
Convert.ToInt32(miles.Substring(miles.IndexOf(":") + 1))
selectedCar.Year = _
Convert.ToInt32(year.Substring(year.IndexOf(":") + 1))
Return selectedCar
End Function 'ConvertFrom
End Class
В следующем примере кода показано, как создать консольное приложение, которое создает и использует пользовательские проверяющие элементы и содержащие их разделы.
using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
namespace Samples.AspNet
{
class TestingConfigValidatorAttribute
{
static TestingConfigValidatorAttribute()
{
try
{
SelectCar car;
// Get the current configuration file.
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
// Create the section entry for the selected car.
if (config.Sections["Cars"] == null)
{
car = new SelectCar();
config.Sections.Add("Cars", car);
car.SectionInformation.ForceSave = true;
config.Save(ConfigurationSaveMode.Full);
}
}
catch (ConfigurationErrorsException err)
{
Console.WriteLine(err.ToString());
}
}
private static void GetCars()
{
try
{
// Get the current configuration file.
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
// Get the Cars section.
SelectCar cars =
config.GetSection("Cars") as SelectCar;
Console.WriteLine("Dream Make: {0} Color: {1} Miles: {2} Year: {3}",
cars.Dream.Make, cars.Dream.Color,
cars.Dream.Miles, cars.Dream.Year);
Console.WriteLine("Commute Make: {0} Color: {1} Miles: {2} Year: {3}",
cars.Commute.Make, cars.Commute.Color,
cars.Commute.Miles, cars.Commute.Year);
}
catch (ConfigurationErrorsException err)
{
Console.WriteLine(err.ToString());
}
}
private static void NotAllowedCars()
{
try
{
// Get the current configuration file.
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
Automobile dreamCar = new Automobile();
dreamCar.Color = "Red";
dreamCar.Make = "BMW";
dreamCar.Miles = 10;
dreamCar.Year = 2005;
Automobile commuteCar = new Automobile();
commuteCar.Color = "Blue";
commuteCar.Make = "Yugo";
commuteCar.Miles = 10;
commuteCar.Year = 1990;
// Get the Cars section.
SelectCar cars =
config.GetSection("Cars") as SelectCar;
cars.Dream = dreamCar;
cars.Commute = commuteCar;
}
catch (ConfigurationErrorsException err)
{
Console.WriteLine(err.ToString());
}
}
static void Main(string[] args)
{
GetCars();
NotAllowedCars();
}
}
}
Imports System.Collections.Generic
Imports System.Text
Imports System.Configuration
Class TestingConfigValidatorAttribute
Shared Sub New()
Try
Dim car As SelectCar
' Get the current configuration file.
Dim config As System.Configuration.Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
' Create the section entry for the selected car.
If config.Sections("Cars") Is Nothing Then
car = New SelectCar()
config.Sections.Add("Cars", car)
car.SectionInformation.ForceSave = True
config.Save(ConfigurationSaveMode.Full)
End If
Catch err As ConfigurationErrorsException
Console.WriteLine(err.ToString())
End Try
End Sub
Private Shared Sub GetCars()
Try
' Get the current configuration file.
Dim config As System.Configuration.Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
' Get the Cars section.
Dim cars As SelectCar = config.GetSection("Cars")
Console.WriteLine("Dream Make: {0} Color: {1} Miles: {2} Year: {3}", cars.Dream.Make, cars.Dream.Color, cars.Dream.Miles, cars.Dream.Year)
Console.WriteLine("Commute Make: {0} Color: {1} Miles: {2} Year: {3}", cars.Commute.Make, cars.Commute.Color, cars.Commute.Miles, cars.Commute.Year)
Catch err As ConfigurationErrorsException
Console.WriteLine(err.ToString())
End Try
End Sub
Private Shared Sub NotAllowedCars()
Try
' Get the current configuration file.
Dim config As System.Configuration.Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
Dim dreamCar As New Automobile()
dreamCar.Color = "Red"
dreamCar.Make = "BMW"
dreamCar.Miles = 10
dreamCar.Year = 2005
Dim commuteCar As New Automobile()
commuteCar.Color = "Blue"
commuteCar.Make = "Yugo"
commuteCar.Miles = 10
commuteCar.Year = 1990
' Get the Cars section.
Dim cars As SelectCar = config.GetSection("Cars")
cars.Dream = dreamCar
cars.Commute = commuteCar
Catch err As ConfigurationErrorsException
Console.WriteLine(err.ToString())
End Try
End Sub
Shared Sub Main(ByVal args() As String)
GetCars()
NotAllowedCars()
End Sub
End Class
Следующий пример кода представляет собой фрагмент конфигурации, используемый в предыдущем примере.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="Cars" type="Samples.AspNet.SelectCar, ConfigValidatorAttribute, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" allowLocation="false" allowDefinition="Everywhere" allowExeDefinition="MachineToApplication" restartOnExternalChanges="true" requirePermission="true" />
</configSections>
<Cars commute="Make:AlfaRomeo Color:Blue Miles:10000 Year:2002"
dream="Make:Ferrari Color:Red Miles:10 Year:2005" />
</configuration>
Комментарии
Все типы атрибутов стандартного проверяющего элемента управления конфигурации ASP.NET являются производными от ConfigurationValidatorAttribute. Этот тип можно использовать для создания собственного настраиваемого атрибута проверяющего элемента управления.
Конструкторы
ConfigurationValidatorAttribute() |
Инициализирует новый экземпляр класса ConfigurationValidatorAttribute. |
ConfigurationValidatorAttribute(Type) |
Выполняет инициализацию нового экземпляра класса ConfigurationValidatorAttribute, используя указанный тип проверяющего элемента управления. |
Свойства
TypeId |
В случае реализации в производном классе возвращает уникальный идентификатор для этого атрибута Attribute. (Унаследовано от Attribute) |
ValidatorInstance |
Получает экземпляр атрибута проверяющего элемента управления. |
ValidatorType |
Получает тип атрибута проверяющего элемента управления. |
Методы
Equals(Object) |
Возвращает значение, показывающее, равен ли экземпляр указанному объекту. (Унаследовано от Attribute) |
GetHashCode() |
Возвращает хэш-код данного экземпляра. (Унаследовано от Attribute) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
IsDefaultAttribute() |
При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса. (Унаследовано от Attribute) |
Match(Object) |
При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту. (Унаследовано от Attribute) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Явные реализации интерфейса
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации. (Унаследовано от Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Возвращает сведения о типе объекта, которые можно использовать для получения сведений о типе интерфейса. (Унаследовано от Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1). (Унаследовано от Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Предоставляет доступ к открытым свойствам и методам объекта. (Унаследовано от Attribute) |