当前位置: 首页>>代码示例>>C#>>正文


C# PositiveTimeSpanValidator类代码示例

本文整理汇总了C#中System.Configuration.PositiveTimeSpanValidator的典型用法代码示例。如果您正苦于以下问题:C# PositiveTimeSpanValidator类的具体用法?C# PositiveTimeSpanValidator怎么用?C# PositiveTimeSpanValidator使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


PositiveTimeSpanValidator类属于System.Configuration命名空间,在下文中一共展示了PositiveTimeSpanValidator类的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: CustomValidatorAttribute

//引入命名空间
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();
        }
    }
}
开发者ID:.NET开发者,项目名称:System.Configuration,代码行数:187,代码来源:PositiveTimeSpanValidator


注:本文中的System.Configuration.PositiveTimeSpanValidator类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。