MVC: Llamada a una nueva sobrecarga de ValidationVisitor.Validate por parte de ObjectModelValidator
En ASP.NET Core 5.0, se ha agregado una sobrecarga de ValidationVisitor.Validate. La nueva sobrecarga acepta la instancia del 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 llevar a cabo la validación. Esta nueva sobrecarga es pertinente en el caso de que su biblioteca de validaciones se integre con el sistema de validación de modelos de MVC para ASP.NET Core.
Para obtener información, vea la incidencia de GitHub n.º 26020 (dotnet/aspnetcore).
Versión introducida
5.0
Comportamiento anterior
ObjectModelValidator
invoca la sobrecarga siguiente durante la validación de modelos:
ValidationVisitor.Validate(ModelMetadata metadata, string key, object model, bool alwaysValidateAtTopLevel)
Comportamiento nuevo
ObjectModelValidator
invoca la sobrecarga siguiente durante la validación de modelos:
ValidationVisitor.Validate(ModelMetadata metadata, string key, object model, bool alwaysValidateAtTopLevel, object container)
Motivo del cambio
Este cambio se ha aplicado para admitir validadores como CompareAttribute, que dependen de la inspección de otras propiedades.
Acción recomendada
Los marcos de validación que dependen de ObjectModelValidator
para invocar la sobrecarga existente de ValidationVisitor
deben invalidar el nuevo método al establecer como destino .NET 5 o una versión posterior:
public class MyCustomValidationVisitor : ValidationVisitor
{
+ public override bool Validate(ModelMetadata metadata, string key, object model, bool alwaysValidateAtTopLevel, object container)
+ {
+ ...
}
API afectadas
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de