Validación condicional usando validación fluida

Lo que necesito es una forma de validar condicionalmente los campos dependiendo de si se completan otros campos.

Ex. Tengo un menú desplegable y un campo de fecha que están relacionados. Si ninguno de los campos está establecido, el formulario debe pasar la validación. Sin embargo, si uno de los dos campos está configurado pero el otro no, la validación debería activarse, lo que requiere que se establezca el otro campo.

He escrito clases de validación personalizadas pero parece que se valida en campos individuales. ¿Hay alguna forma de configurar la validación que necesito usando los validadores integrados? Si no es así, ¿hay una buena manera de conectar dos campos utilizando un validador personalizado?

La validación fluida admite la validación condicional, solo use la cláusula When para verificar el valor del campo secundario:

http://fluentvalidation.codeplex.com/wikipage?title=Customising&referringTitle=Documentation&ANCHOR#WhenUnless

Especificar una condición con los métodos When / Unless, When y Unless, se pueden usar para especificar las condiciones que controlan cuándo se debe ejecutar la regla. Por ejemplo, esta regla en la propiedad CustomerDiscount solo se ejecutará cuando IsPreferredCustomer sea verdadero:

RuleFor (customer => customer.CustomerDiscount) .GaintThan (0) .When (customer => customer.IsPreferredCustomer); `

El método de Unless es simplemente el opuesto de cuando.

También puede utilizar la operación .SetValidator para definir un validador personalizado que funcione en la condición NotEmpty.

RuleFor (customer => customer.CustomerDiscount) .GreaterThan (0) .SetValidator (New MyCustomerDiscountValidator)