Você está substituindo a sobrecarga errada. Você precisa substituir o método Validate pela assinatura: public virtual ValidationResult Validate(ValidationContext<T> context)
porque esse método será chamado durante a validação do MVC:
public override ValidationResult Validate(
ValidationContext<RequiredSourceViewModel> context)
{
var validator = new SourceValidator();
var source =
Mapper.Map<RequiredSourceViewModel, Source>(context.InstanceToValidate);
return validator.Validate(source);
}
A outra sobrecarga é usada apenas se você chamar manualmente validar como validator.Validate(object)
.