PositiveTimeSpanValidator 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
TimeSpan 개체의 유효성을 검사합니다. 이 클래스는 상속될 수 없습니다.
public ref class PositiveTimeSpanValidator : System::Configuration::ConfigurationValidatorBase
public class PositiveTimeSpanValidator : System.Configuration.ConfigurationValidatorBase
type PositiveTimeSpanValidator = class
inherit ConfigurationValidatorBase
Public Class PositiveTimeSpanValidator
Inherits ConfigurationValidatorBase
- 상속
예제
다음 코드 예제를 사용 하는 방법에 설명 합니다 PositiveTimeSpanValidator 형식입니다.
using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
using System.ComponentModel;
namespace Samples.AspNet
{
// Implements a custom validator attribute.
[AttributeUsage(AttributeTargets.Property)]
public sealed class CustomValidatorAttribute :
ConfigurationValidatorAttribute
{
public CustomValidatorAttribute()
{
}
public CustomValidatorAttribute(Type validator)
: base(validator)
{
}
new public Type ValidatorType
{
get
{ return GetType(); }
}
public override ConfigurationValidatorBase ValidatorInstance
{
get
{
// Create validator.
return new PositiveTimeSpanValidator();
}
}
}
// Implements a custom section class.
public class SampleSection : ConfigurationSection
{
[ConfigurationProperty("name", DefaultValue = "MyBuildRoutine",
IsRequired = true)]
[StringValidator(InvalidCharacters = " ~!@#$%^&*()[]{}/;'\"|\\",
MinLength = 1, MaxLength = 60)]
public string Name
{
get
{
return (string)this["name"];
}
set
{
this["name"] = value;
}
}
[ConfigurationProperty("BuildStartTime", IsRequired = true,
DefaultValue = "09:00:00")]
public TimeSpan BuildStartTime
{
get
{
TimeSpanConverter myTSC = new TimeSpanConverter();
return (TimeSpan)this["BuildStartTime"];
}
set
{
this["BuildStartTime"] = value.ToString();
}
}
[ConfigurationProperty("BuildEndTime", IsRequired = true,
DefaultValue = "17:00:00")]
public TimeSpan BuildEndTime
{
get
{
TimeSpanConverter myTSC = new TimeSpanConverter();
return (TimeSpan)this["BuildEndTime"];
}
set
{
this["BuildEndTime"] = value.ToString();
}
}
}
// Implements the console user interface.
class TestingCustomValidatorAttribute
{
// Shows how to use the ValidatorInstance method.
public static void GetCustomValidatorInstance()
{
ConfigurationValidatorBase valBase;
CustomValidatorAttribute customValAttr;
customValAttr = new CustomValidatorAttribute();
SampleSection sampleSection =
ConfigurationManager.GetSection("MyDailyProcess") as SampleSection;
TimeSpanConverter myTSC = new TimeSpanConverter();
TimeSpan StartTimeSpan = (TimeSpan)myTSC.ConvertFromString(sampleSection.BuildStartTime.ToString());
TimeSpan EndTimeSpan = (TimeSpan)myTSC.ConvertFromString(sampleSection.BuildEndTime.ToString());
TimeSpan resultTimeSpan = EndTimeSpan - StartTimeSpan;
try
{
// Determine if the Validator can validate
// the type it contains.
valBase = customValAttr.ValidatorInstance;
if (valBase.CanValidate(resultTimeSpan.GetType()))
{
// Validate the TimeSpan using a
// custom PositiveTimeSpanValidator.
valBase.Validate(resultTimeSpan);
}
}
catch (ArgumentException e)
{
// Store error message.
string msg = e.Message.ToString();
#if DEBUG
Console.WriteLine("Error: {0}", msg);
#endif
}
}
// Create required sections.
static void CreateSection()
{
// Get the current configuration (file).
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
// Define the sample section.
SampleSection sampleSection;
// Create the handler section named MyDailyProcess
// in the <configSections>. Also, create the
// <MyDailyProcess> target section
// in <configuration>.
if (config.Sections["MyDailyProcess"] == null)
{
sampleSection = new SampleSection();
config.Sections.Add("MyDailyProcess", sampleSection);
sampleSection.SectionInformation.ForceSave = true;
config.Save(ConfigurationSaveMode.Full);
}
}
static void DisplaySectionProperties()
{
SampleSection sampleSection =
ConfigurationManager.GetSection("MyDailyProcess") as SampleSection;
if (sampleSection == null)
{
Console.WriteLine("Failed to load section.");
}
else
{
Console.WriteLine("Defaults:");
Console.WriteLine(" Name: {0}", sampleSection.Name);
Console.WriteLine(" BuildStartTime: {0}", sampleSection.BuildStartTime);
Console.WriteLine(" BuildEndTime: {0}", sampleSection.BuildEndTime);
}
}
static void Main(string[] args)
{
Console.WriteLine("[Create a section]");
CreateSection();
Console.WriteLine("[Display section information]");
DisplaySectionProperties();
// Show how to use the ValidatorInstance method.
GetCustomValidatorInstance();
// Display and wait.
Console.ReadLine();
}
}
}
Imports System.Collections.Generic
Imports System.Text
Imports System.Configuration
Imports System.ComponentModel
Namespace Samples.AspNet.Configuration
' Implements a custom validator attribute.
<AttributeUsage(AttributeTargets.Property)> _
Public NotInheritable Class CustomValidatorAttribute
Inherits ConfigurationValidatorAttribute
Public Sub New()
End Sub
Public Sub New(ByVal validator As Type)
MyBase.New(validator)
End Sub
Public Shadows ReadOnly Property _
ValidatorType() As Type
Get
Return [GetType]()
End Get
End Property
Public Overrides ReadOnly Property ValidatorInstance() As ConfigurationValidatorBase
Get
' Create validator.
Return New PositiveTimeSpanValidator()
End Get
End Property
End Class
' Implements a custom section class.
Public Class SampleSection
Inherits ConfigurationSection
<ConfigurationProperty("name", DefaultValue:="MyBuildRoutine", IsRequired:=True), _
StringValidator(InvalidCharacters:=" ~!@#$%^&*()[]{}/;'""|\", _
MinLength:=1, MaxLength:=60)> _
Public Property Name() As String
Get
Return CType(Me("name"), String)
End Get
Set(ByVal Value As String)
Me("name") = Value
End Set
End Property
<ConfigurationProperty("BuildStartTime", IsRequired:=True, _
DefaultValue:="09:00:00")> _
Public Property BuildStartTime() As TimeSpan
Get
Dim myTSC As TimeSpanConverter = New TimeSpanConverter()
Return CType(Me("BuildStartTime"), TimeSpan)
End Get
Set(ByVal Value As TimeSpan)
Me("BuildStartTime") = Value.ToString()
End Set
End Property
<ConfigurationProperty("BuildEndTime", IsRequired:=True, _
DefaultValue:="17:00:00")> _
Public Property BuildEndTime() As TimeSpan
Get
Dim myTSC As TimeSpanConverter = New TimeSpanConverter()
Return CType(Me("BuildEndTime"), TimeSpan)
End Get
Set(ByVal Value As TimeSpan)
Me("BuildEndTime") = Value.ToString()
End Set
End Property
End Class
' Implements the console user interface.
Class TestingCustomValidatorAttribute
' Shows how to use the ValidatorInstance method.
Public Shared Sub GetCustomValidatorInstance()
Dim valBase As ConfigurationValidatorBase
Dim customValAttr As CustomValidatorAttribute
customValAttr = New CustomValidatorAttribute()
Dim sampleSection As SampleSection = ConfigurationManager.GetSection("MyDailyProcess")
Dim myTSC As TimeSpanConverter = New TimeSpanConverter()
Dim StartTimeSpan As TimeSpan = CType(myTSC.ConvertFromString(SampleSection.BuildStartTime.ToString()), TimeSpan)
Dim EndTimeSpan As TimeSpan = CType(myTSC.ConvertFromString(SampleSection.BuildEndTime.ToString()), TimeSpan)
Dim resultTimeSpan As TimeSpan = EndTimeSpan - StartTimeSpan
Try
' Determine if the Validator can validate
' the type it contains.
valBase = customValAttr.ValidatorInstance
If valBase.CanValidate(resultTimeSpan.GetType()) Then
' Validate the TimeSpan using a
' custom PositiveTimeSpanValidator.
valBase.Validate(resultTimeSpan)
End If
Catch e As ArgumentException
' Store error message.
Dim msg As String = e.Message.ToString()
#If DEBUG Then
Console.WriteLine("Error: {0}", msg)
#End If
End Try
End Sub
' Create required sections.
Shared Sub CreateSection()
' Get the current configuration (file).
Dim config As System.Configuration.Configuration = _
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
' Define the sample section.
Dim sampleSection As SampleSection
' Create the handler section named MyDailyProcess
' in the <configSections>. Also, create the
' <MyDailyProcess> target section
' in <configuration>.
If config.Sections("MyDailyProcess") Is Nothing Then
sampleSection = New SampleSection()
config.Sections.Add("MyDailyProcess", sampleSection)
sampleSection.SectionInformation.ForceSave = True
config.Save(ConfigurationSaveMode.Full)
End If
End Sub
Shared Sub DisplaySectionProperties()
Dim sampleSection As SampleSection = ConfigurationManager.GetSection("MyDailyProcess")
If SampleSection Is Nothing Then
Console.WriteLine("Failed to load section.")
Else
Console.WriteLine("Defaults:")
Console.WriteLine(" Name: {0}", SampleSection.Name)
Console.WriteLine(" BuildStartTime: {0}", SampleSection.BuildStartTime)
Console.WriteLine(" BuildEndTime: {0}", SampleSection.BuildEndTime)
End If
End Sub
Shared Sub Main(ByVal args() As String)
Console.WriteLine("[Create a section]")
CreateSection()
Console.WriteLine("[Display section information]")
DisplaySectionProperties()
' Show how to use the ValidatorInstance method.
GetCustomValidatorInstance()
' Display and wait.
Console.ReadLine()
End Sub
End Class
End Namespace
설명
는 PositiveTimeSpanValidator 개체가 TimeSpan 특정 조건을 충족하는지 확인하는 데 사용됩니다. CanValidate 메서드 유효성을 검사할 개체 형식에 필요한 형식과 일치 하는지 여부를 결정 합니다. 유효성 검사 중인 개체의 매개 변수로 전달 되는 Validate 메서드. 유효성 검사를 통과하려면 유효성을 검사하는 개체가 양수 TimeSpan 값이어야 합니다.
생성자
PositiveTimeSpanValidator() |
PositiveTimeSpanValidator 클래스의 새 인스턴스를 초기화합니다. |
메서드
CanValidate(Type) |
개체 형식의 유효성을 검사할 수 있는지 여부를 확인합니다. |
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
Validate(Object) |
개체의 값이 유효한지 여부를 확인합니다. |
적용 대상
추가 정보
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET