Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
No ASP.NET Core 5.0, foi adicionada uma sobrecarga do ValidationVisitor.Validate. A nova sobrecarga aceita a instância de modelo de nível superior que contém as 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 esta nova sobrecarga de ValidationVisitor para realizar validação. Esta nova sobrecarga é pertinente se a sua biblioteca de validação se integrar com o sistema de validação de modelos do ASP.NET Core MVC.
Para discussão, consulte o issue do GitHub 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 suportar validadores, como CompareAttribute, que dependem da inspeção de outras propriedades.
Ação recomendada
Frameworks de validação que dependem de ObjectModelValidator para invocar a sobrecarga existente de ValidationVisitor devem sobrepor o novo método ao ter como alvo no .NET 5 ou posterior.
public class MyCustomValidationVisitor : ValidationVisitor
{
+ public override bool Validate(ModelMetadata metadata, string key, object model, bool alwaysValidateAtTopLevel, object container)
+ {
+ ...
}