Esempio n. 1
0
        /// <summary>Keeps the validating.</summary>
        /// <param name="monitor">The monitor.</param>
        public void KeepValidating(IOptionsMonitor <object> monitor)
        {
            monitor?.OnChange(o =>
            {
                var settingType = monitor.GetType().GetGenericArguments().SingleOrDefault();
                if (settingType == null)
                {
                    return;
                }

                var result = Validate(Validators[settingType], o, settingType);
                if (!result.IsValid)
                {
                    throw new ValidationException(result, o.GetType(),
                                                  "Changed variable caused ValidationFailure.");
                }
            });
        }