Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En ASP.NET Core 5.0, se agregó una sobrecarga de ValidationVisitor.Validate. La nueva sobrecarga acepta la instancia de modelo de nivel superior que contiene propiedades:
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 nueva sobrecarga de ValidationVisitor para realizar la validación. Esta nueva sobrecarga es pertinente si la biblioteca de validación se integra con el sistema de validación de modelos de ASP.NET Core MVC.
Para discusión, consulte el problema de GitHub dotnet/aspnetcore#26020.
Versión introducida
5.0
Comportamiento anterior
ObjectModelValidator invoca la siguiente sobrecarga durante la validación del modelo:
ValidationVisitor.Validate(ModelMetadata metadata, string key, object model, bool alwaysValidateAtTopLevel)
Nuevo comportamiento
ObjectModelValidator invoca la siguiente sobrecarga durante la validación del modelo:
ValidationVisitor.Validate(ModelMetadata metadata, string key, object model, bool alwaysValidateAtTopLevel, object container)
Motivo del cambio
Este cambio se introdujo para admitir validadores, como CompareAttribute, que se basan en la inspección de otras propiedades.
Acción recomendada
Los marcos de validación que se basan en ObjectModelValidator para invocar la sobrecarga existente de ValidationVisitor deben invalidar el nuevo método al tener como destino .NET 5 o posterior:
public class MyCustomValidationVisitor : ValidationVisitor
{
+ public override bool Validate(ModelMetadata metadata, string key, object model, bool alwaysValidateAtTopLevel, object container)
+ {
+ ...
}