PositiveTimeSpanValidator Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Proporciona la validación de un objeto TimeSpan. Esta clase no puede heredarse.
public ref class PositiveTimeSpanValidator : System::Configuration::ConfigurationValidatorBase
public class PositiveTimeSpanValidator : System.Configuration.ConfigurationValidatorBase
type PositiveTimeSpanValidator = class
inherit ConfigurationValidatorBase
Public Class PositiveTimeSpanValidator
Inherits ConfigurationValidatorBase
- Herencia
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar el PositiveTimeSpanValidator tipo .
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
Comentarios
PositiveTimeSpanValidator se usa para asegurarse de que un TimeSpan objeto cumple criterios específicos. El CanValidate método determina si el tipo de objeto que se va a validar coincide con el tipo esperado. El objeto que se valida se pasa como parámetro del Validate método . Para pasar la validación, el objeto que se va a validar debe ser un valor positivo TimeSpan .
Constructores
PositiveTimeSpanValidator() |
Inicializa una nueva instancia de la clase PositiveTimeSpanValidator. |
Métodos
CanValidate(Type) |
Determina si se puede validar el tipo de objeto. |
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
GetHashCode() |
Sirve como la función hash predeterminada. (Heredado de Object) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Validate(Object) |
Determina si el valor de un objeto es válido. |