<PackageReference Include="System.Configuration.ConfigurationManager" Version="4.4.1" />

TimeSpanValidator

namespace System.Configuration { public class TimeSpanValidator : ConfigurationValidatorBase { private enum ValidationFlags { None, ExclusiveRange } private readonly ValidationFlags _flags; private readonly TimeSpan _maxValue; private readonly TimeSpan _minValue; private readonly long _resolution; public TimeSpanValidator(TimeSpan minValue, TimeSpan maxValue) : this(minValue, maxValue, false, 0) { } public TimeSpanValidator(TimeSpan minValue, TimeSpan maxValue, bool rangeIsExclusive) : this(minValue, maxValue, rangeIsExclusive, 0) { } public TimeSpanValidator(TimeSpan minValue, TimeSpan maxValue, bool rangeIsExclusive, long resolutionInSeconds) { if (resolutionInSeconds < 0) throw new ArgumentOutOfRangeException("resolutionInSeconds"); if (minValue > maxValue) throw new ArgumentOutOfRangeException("minValue", System.SR.Validator_min_greater_than_max); _minValue = minValue; _maxValue = maxValue; _resolution = resolutionInSeconds; _flags = (rangeIsExclusive ? ValidationFlags.ExclusiveRange : ValidationFlags.None); } public override bool CanValidate(Type type) { return type == typeof(TimeSpan); } public override void Validate(object value) { ValidatorUtils.HelperParamValidation(value, typeof(TimeSpan)); ValidatorUtils.ValidateScalar((TimeSpan)value, _minValue, _maxValue, _resolution, _flags == ValidationFlags.ExclusiveRange); } } }