Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I ASP.NET Core 5.0 lades en överbelastning till ValidationVisitor.Validate. Den nya överlagringen accepterar den översta modellinstansen som innehåller egenskaper:
bool Validate(ModelMetadata metadata, string key, object model, bool alwaysValidateAtTopLevel);
+ bool Validate(ModelMetadata metadata, string key, object model, bool alwaysValidateAtTopLevel, object container);
ObjectModelValidator anropar den här nya överlagringen av ValidationVisitor för att utföra validering. Den här nya överlagringen är relevant om valideringsbiblioteket integreras med ASP.NET Core MVC:s modellverifieringssystem.
För diskussion, se GitHub-ärende dotnet/aspnetcore#26020.
Version lanserad
5,0
Gammalt beteende
ObjectModelValidator anropar följande överlagring vid modellverifieringen:
ValidationVisitor.Validate(ModelMetadata metadata, string key, object model, bool alwaysValidateAtTopLevel)
Nytt beteende
ObjectModelValidator anropar följande överlagring vid modellverifieringen:
ValidationVisitor.Validate(ModelMetadata metadata, string key, object model, bool alwaysValidateAtTopLevel, object container)
Orsak till ändring
Den här ändringen infördes för att stödja validatorer, till exempel , som CompareAttributeförlitar sig på kontroll av andra egenskaper.
Rekommenderad åtgärd
Valideringsramverk som förlitar sig på ObjectModelValidator för att anropa den befintliga överbelastningen av ValidationVisitor måste åsidosätta den nya metoden när de riktar sig mot .NET 5 eller senare.
public class MyCustomValidationVisitor : ValidationVisitor
{
+ public override bool Validate(ModelMetadata metadata, string key, object model, bool alwaysValidateAtTopLevel, object container)
+ {
+ ...
}