/// <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."); } }); }