static internal IParameterValidator CreateValidator(ParameterValidatorType validatorType, Type valueType, IDictionary <string, object> parameters) { switch (validatorType) { case ParameterValidatorType.Range: return(RangeAttribute.CreateRangeValidator(valueType, parameters)); case ParameterValidatorType.Regex: return(RegexAttribute.CreateRegexValidator(parameters)); case ParameterValidatorType.NotNull: return(NotNullAttribute.NotNullValidator.instance); case ParameterValidatorType.InstanceOfType: return(InstanceOfTypeAttribute.CreateValidator(parameters)); case ParameterValidatorType.AssignableFromType: return(AssignableFromTypeAttribute.CreateValidator(parameters)); } throw new NotImplementedException(string.Format("validator type <{0}>, value type <{1}>", validatorType, valueType)); }