PositiveTimeSpanValidator Classe

Definição

Fornece validação de um objeto TimeSpan. Essa classe não pode ser herdada.

public class PositiveTimeSpanValidator : System.Configuration.ConfigurationValidatorBase
Herança
PositiveTimeSpanValidator

Exemplos

O exemplo de código a seguir demonstra como usar o 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();
        }
    }
}

Comentários

O PositiveTimeSpanValidator é usado para garantir que um TimeSpan objeto atenda a critérios específicos. O CanValidate método determina se o tipo de objeto que está sendo validado corresponde ao tipo esperado. O objeto que está sendo validado é passado como um parâmetro do Validate método . Para passar na validação, o objeto que está sendo validado deve ser um valor positivo TimeSpan .

Construtores

PositiveTimeSpanValidator()

Inicializa uma nova instância da classe PositiveTimeSpanValidator.

Métodos

CanValidate(Type)

Determina se o tipo de objeto pode ser validado.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
Validate(Object)

Determina se o valor de um objeto é válido.

Aplica-se a

Produto Versões
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Confira também