FluentValidation rule for null object

后端 未结 9 1120
遥遥无期
遥遥无期 2020-12-25 10:44

I\'ve been trying to work out how to create a FluentValidation rule that checks if the instance of an object it\'s validating is not null, prior to validating it\'s properti

相关标签:
9条回答
  • 2020-12-25 11:30

    Override EnsureInstanceNotNull as below

    protected override void EnsureInstanceNotNull(object instanceToValidate)
    {
        if(instanceToValidate==null)
          throw new ValidationException("Customer can not be null");
    }
    
    0 讨论(0)
  • 2020-12-25 11:33

    I can't really test that right now, but you can either try to override Validate, or include the rules in the When block:

    public CustomerValidator()
    {
         When(x => x != null, () => {
             RuleFor(x => x.Surname).NotEmpty();
             //etc.
         });
    }
    
    0 讨论(0)
  • 2020-12-25 11:37

    By means of Custom(). It can be also very helpful when validation of another field is based on validation of your current field.

    ruleBuilder.Custom((obj, context) =>
            {
                if (obj != null)
                {
                    var propertyName = <field where should be validation>;
                    context.AddFailure(propertyName, "'Your field name' Your validation message.");
                }
            });
    
    0 讨论(0)
提交回复
热议问题