Start Debugging

dotnet-10

103 posts · Página1de11

Setter de FileSystemInfo.LastWriteTime vs File.SetLastWriteTime en .NET

Ambos terminan en la misma llamada al sistema operativo, así que la marca de tiempo que se escribe es idéntica. Las diferencias están alrededor: qué caché se invalida, si los directorios funcionan en Windows, cómo se convierte un DateTime que no es UTC y si puedes apuntar a un handle abierto. Usa File.SetLastWriteTimeUtc, por handle cuando el archivo está abierto. Verificado en .NET 10.0.10.

Cómo marcar la respuesta de una acción de controlador como anulable en el documento OpenAPI integrado de ASP.NET Core

Microsoft.AspNetCore.OpenApi solo marca una respuesta como anulable cuando la acción devuelve un T? simple (y, en .NET 10, ni siquiera con Task<T?>). ActionResult<T?> e IActionResult pierden la anotación tanto en .NET 10 como en .NET 11 RC2. Aquí está el porqué, un transformador de operación probado que lo arregla y la trampa del 204 No Content que hace que la especificación mienta si no cambias también el formatter de MVC.

¿Qué copia realmente una expresión `with` de C# y por qué las propiedades calculadas de un record no se recalculan?

Una expresión with llama al método <Clone>$ que el compilador genera en el record, el cual ejecuta un constructor de copia que copia todos los campos de instancia y omite todos los inicializadores. Por eso las propiedades inicializadas a partir de otras propiedades, los valores en caché y los ID Guid quedan desactualizados. Medido en .NET 10 con C# 14, con las soluciones que sí funcionan.
Siguiente