Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
No ASP.NET Core 5.0, uma sobrecarga do ValidationVisitor.Validate foi adicionada. A nova sobrecarga aceita a instância de modelo de nível superior que contém múltiplas propriedades:
bool Validate(ModelMetadata metadata, string key, object model, bool alwaysValidateAtTopLevel);
+ bool Validate(ModelMetadata metadata, string key, object model, bool alwaysValidateAtTopLevel, object container);
ObjectModelValidator invoca essa nova sobrecarga de ValidationVisitor para executar a validação. Essa nova sobrecarga é pertinente se sua biblioteca de validação se integrar ao sistema de validação de modelo do ASP.NET Core MVC.
Para discussão, consulte GitHub issue dotnet/aspnetcore#26020.
Versão introduzida
5.0
Comportamento antigo
ObjectModelValidator invoca a seguinte sobrecarga durante a validação do modelo:
ValidationVisitor.Validate(ModelMetadata metadata, string key, object model, bool alwaysValidateAtTopLevel)
Novo comportamento
ObjectModelValidator invoca a seguinte sobrecarga durante a validação do modelo:
ValidationVisitor.Validate(ModelMetadata metadata, string key, object model, bool alwaysValidateAtTopLevel, object container)
Motivo da mudança
Esta alteração foi introduzida para dar suporte a validadores, como CompareAttribute, que dependem da inspeção de outras propriedades.
Ação recomendada
As frameworks de validação que dependem de ObjectModelValidator para invocar a sobrecarga existente de ValidationVisitor devem sobrepor o novo método ao direcionar para o .NET 5 ou posterior.
public class MyCustomValidationVisitor : ValidationVisitor
{
+ public override bool Validate(ModelMetadata metadata, string key, object model, bool alwaysValidateAtTopLevel, object container)
+ {
+ ...
}