FluentValidation – Cannot pass null model to Validate
FluentValidation to znakomita biblioteka ułatwiająca walidację danych. Pozwala zdefiniować reguły walidacji w całkiem zgrabny sposób. Dla podstawowych scenariuszy zawiera gotowe komunikaty błędu w wielu wersjach językowych. Niestety posiada też pewną kuriozalną cechę.Jeśli do metody Validate zostanie przekazana wartość null, zostanie rzucony wyjątek z informacją "Cannot pass null model to Validate". Co na ten temat mówi autor biblioteki?
"This is actually by design. The purpose of FluentValidation is to validate properties on objects, which by definition requires a non-null instance in order to work."https://github.com/JeremySkinner/FluentValidation/issues/486#issuecomment-307696164
Czyli jak to często w świecie IT bywa: "It's Not a Bug, It's a Feature." Bywają jednak sytuacje, że null jest wartością spodziewaną i chcemy zwrócić błąd walidacji spójny z pozostałymi regułami. Można to zrobić nadpisując metodę Validate walidatora:
public class Product
{
public string Title { get; set; }
public decimal Price { get; set; }
...