The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Mit .NET 10 kann die neue ASP.NET-Core-JSON-Patch-Implementierung auf Basis von System.Text.Json die test-Operation verwenden, um einen Wert an einem JSON-Pfad zu prüfen. Stimmt der aktuelle Wert nicht mit dem übermittelten Wert überein, schlägt der gesamte PATCH-Aufruf fehl. Dafür benötigen Sie das NuGet-Paket Microsoft.AspNetCore.JsonPatch.SystemTextJson.
Was die JSON-Patch-Operation test macht
test vergleicht den Wert an einem angegebenen Pfad mit dem Wert im Patch-Dokument. Ein einzelner Vorgang sieht beispielsweise so aus:
As an Amazon Associate I earn from qualifying purchases.
{ "op": "test", "path": "/FirstName", "value": "Jane" }
Der Vorgang prüft also, ob die Eigenschaft FirstName den Wert Jane enthält. Er ändert die Eigenschaft nicht selbst. Microsoft beschreibt diese Funktion als Prüfung, ob ein angegebener Wert der Zieleigenschaft entspricht: JSON Patch in ASP.NET Core.
Recommended Free Tools
Eine Bedingung vor einer Änderung einsetzen
Ein Patch-Dokument kann die Prüfung vor einer Änderungsoperation ausführen. Dieses Beispiel erwartet zunächst den Namen Nancy und setzt ihn anschließend auf Barry:
#1 Best Overall
[
{ "op": "test", "path": "/customerName", "value": "Nancy" },
{ "op": "add", "path": "/customerName", "value": "Barry" }
]
Ist der aktuelle Wert von customerName nicht Nancy, scheitert die Testbedingung; der PATCH-Aufruf schlägt fehl. Microsoft nennt das Verhindern eines Updates bei einem Concurrency-Konflikt als typischen Anwendungsfall. test liefert dabei eine Vergleichsbedingung im Patch-Dokument, ist laut Dokumentation aber kein vollständiger Ersatz für ein umfassenderes Concurrency-Konzept.
Was bei einem fehlgeschlagenen Test zu beachten ist
Ein fehlgeschlagener Vorgang bedeutet nicht automatisch, dass Änderungen am Zielobjekt rückgängig gemacht werden. ApplyTo verändert das übergebene Objekt direkt; die Anwendung ist dafür verantwortlich, Änderungen zu verwerfen oder anderweitig abzusichern, wenn ein Vorgang fehlschlägt. Behandeln Sie das Ergebnis daher nicht als atomare Transaktion: Verwenden Sie bei Bedarf eine geschützte Kopie oder eine eigene Transaktions- beziehungsweise Wiederherstellungsstrategie, bevor Sie Änderungen dauerhaft übernehmen.
Einbindung und typisierte API
Die System.Text.Json-basierte ASP.NET-Core-Implementierung ist neu in .NET 10 und wird über das Paket Microsoft.AspNetCore.JsonPatch.SystemTextJson eingebunden. Die .NET-10-API-Referenz führt für JsonPatchDocument<TModel> Test-Überladungen für Modelleigenschaften sowie für Werte am Ende oder an einer bestimmten Position einer Liste auf. Die Referenz ist für Microsoft.AspNetCore.JsonPatch v10.0.0 dokumentiert: JsonPatchDocument<TModel>.Test API.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitchesWas sich gegenüber der älteren Implementierung unterscheidet
Die ältere ASP.NET-Core-Implementierung basiert auf Newtonsoft.Json. Die neue Variante nutzt System.Text.Json; Microsoft nennt für sie im Vergleich eine bessere Performance und einen geringeren Speicherverbrauch. Das ist Microsofts Vergleichsaussage, kein hier unabhängig gemessener Benchmark. Die neue Implementierung ist zudem kein vollständig kompatibler Drop-in-Ersatz: Dynamische Typen wie ExpandoObject werden nicht unterstützt. Prüfen Sie deshalb Serializer-Abhängigkeiten und verwendete Modelltypen, bevor Sie eine bestehende Anwendung umstellen. Siehe Microsofts JSON-Patch-Dokumentation und die .NET-10-Änderungen.
Rank #3
Sicherheitsgrenzen
JSON Patch bringt inhärente Sicherheitsrisiken mit sich. Microsoft überträgt den Entwicklern die Verantwortung zu prüfen, ob ein Patch-Dokument sicher auf das jeweilige Zielobjekt angewendet werden kann. Validieren und begrenzen Sie daher zulässige Pfade und Operationen passend zu Ihrer Anwendung, statt eingehende Patch-Dokumente ungeprüft auf interne Modelle anzuwenden. Die konkrete Prüfung hängt davon ab, welche Daten das API freigibt und welche Änderungen der jeweilige Nutzer vornehmen darf.
Quick Recap
Best Value
Rank #4
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




