Blazor: WebEventDescriptor.EventArgsType-Eigenschaft ersetzt
Die Klasse WebEventDescriptor gehört zum internen Blazor-Protokoll für die Kommunikation von Ereignissen aus JavaScript in .NET. Diese Klasse wird in der Regel nicht vom App-Code, sondern von Plattformautoren verwendet.
Ab ASP.NET Core 6.0 wird die Eigenschaft EventArgsType für WebEventDescriptor
durch eine neue Eigenschaft EventName
ersetzt. Diese Änderung wirkt sich höchstwahrscheinlich nicht auf den App-Code aus, da es sich um ein Detail für die Plattformimplementierung handelt.
Eingeführt in Version
ASP.NET Core 6.0
Altes Verhalten
In ASP.NET Core 5.0 und früher beschreibt die Eigenschaft EventArgsType
einen nicht dem Standard entsprechenden, Blazor-spezifischen Kategorienamen für Gruppen von DOM-Ereignistypen. Beispielsweise wurden die Ereignisse click
und mousedown
beide einem EventArgsType
-Wert von mouse
zugeordnet. Ebenso werden die Ereignisse cut
, copy
und paste
dem EventArgsType
-Wert clipboard
zugeordnet. Anhand dieser Kategorienamen wird der .NET-Typ festgelegt, der zum Deserialisieren der eingehenden Ereignisargumentdaten verwendet werden soll.
Neues Verhalten
Ab ASP.NET Core 6.0 wird mit der neuen Eigenschaft EventName
nur der Name des ursprünglichen Ereignisses angegeben. Beispiel: click
, mousedown
, cut
, copy
oder paste
. Es ist nicht mehr erforderlich, einen Blazor-spezifischen Kategorienamen anzugeben. Aus diesem Grund wird die alte Eigenschaft EventArgsType
entfernt.
Grund für die Änderung
In Pull Request dotnet/aspnetcore#29993 wurde Unterstützung für benutzerdefinierte Ereignisargumentklassen eingeführt. Durch diese Unterstützung müssen nicht mehr alle Ereignisse für das Framework einem vordefinierten Satz von Kategorien entsprechen. Das Framework muss jetzt nur noch den ursprünglichen Ereignisnamen kennen.
Empfohlene Maßnahme
Der App-Code sollte nicht betroffen sein und muss nicht geändert werden.
Wenn Sie eine benutzerdefinierte Blazor-Renderingplattform erstellen, müssen Sie möglicherweise den Mechanismus für die Verteilung von Ereignissen an den Renderer
aktualisieren. Ersetzen Sie hartcodierte Regeln zu Ereigniskategorien durch einfachere Logik, die den ursprünglichen, unformatierten Ereignisnamen bereitstellt.