Start Debugging

dotnet-10

103 Beiträge · Seite1von11

FileSystemInfo.LastWriteTime-Setter vs. File.SetLastWriteTime in .NET

Beide enden im selben Betriebssystemaufruf, der geschriebene Zeitstempel ist also identisch. Die Unterschiede liegen drumherum: welcher Cache invalidiert wird, ob Verzeichnisse unter Windows funktionieren, wie ein Nicht-UTC-DateTime umgerechnet wird und ob sich ein offenes Handle als Ziel angeben lässt. Verwenden Sie File.SetLastWriteTimeUtc, bei geöffneter Datei per Handle. Geprüft mit .NET 10.0.10.

Wie Sie die Antwort einer Controller-Action im integrierten OpenAPI-Dokument von ASP.NET Core als nullbar markieren

Microsoft.AspNetCore.OpenApi markiert eine Antwort nur dann als nullbar, wenn die Action ein reines T? zurückgibt (und unter .NET 10 nicht einmal Task<T?>). ActionResult<T?> und IActionResult verlieren die Annotation sowohl unter .NET 10 als auch unter .NET 11 RC2. Hier steht der Grund, ein getesteter Operation Transformer, der das behebt, und die Falle mit 204 No Content, durch die die Spezifikation lügt, wenn Sie nicht auch den Formatter von MVC ändern.

Was kopiert ein C# `with`-Ausdruck tatsächlich, und warum werden berechnete Record-Eigenschaften nicht neu berechnet?

Ein with-Ausdruck ruft die vom Compiler generierte Methode <Clone>$ des Records auf, die einen Kopierkonstruktor ausführt: Er kopiert jedes Instanzfeld und überspringt alle Initialisierer. Deshalb sind Eigenschaften, die aus anderen Eigenschaften initialisiert werden, zwischengespeicherte Werte und Guid-IDs nach dem Kopieren veraltet. Gemessen unter .NET 10 mit C# 14, samt den Lösungen, die tatsächlich funktionieren.
Weiter