Start Debugging

dotnet-10

103 Beiträge · Seite2von11

Eine Blazor-App mit routbaren Komponenten in einer anderen Assembly von .NET 8 auf .NET 10 migrieren

Upgrade einer Blazor Web App, deren Seiten in einer Razor-Klassenbibliothek oder einem .Client-Projekt liegen, von .NET 8 auf .NET 10: was gleich bleibt (beide AdditionalAssemblies-Registrierungen) und die vier Dinge, die brechen, vom 404 auf blazor.web.js in schlanken Hosts bis zu NotFoundPage-Seiten, die leer rendern. Gemessen mit ASP.NET Core 8.0.32 und 10.0.10.

So verwerfen Sie gepufferte Tastendrücke vor Console.ReadKey in einer C#-Konsolenspielschleife

Leeren Sie den Konsoleneingabepuffer mit while (Console.KeyAvailable) Console.ReadKey(true), bevor Sie auf eine neue Taste warten, und tun Sie das in einer Spielschleife in jedem Frame, damit sich die Tastenwiederholung nicht aufstaut. Wie der Puffer unter Windows und Unix in .NET 10 funktioniert, warum gehaltene Tasten verzögert wirken, die Echo-Falle unter Unix und FlushConsoleInputBuffer.

So tragen Sie den vollständigen öffentlichen Schlüssel einer Assembly mit starkem Namen in InternalsVisibleTo eines SDK-Projekts ein

Eine signierte Assembly muss ihre Friend-Assembly über den vollständigen öffentlichen Schlüssel mit 320 Zeichen benennen, nicht über das Token, sonst schlägt der Build mit CS1726 oder CS0281 fehl. Den Schlüssel liefern sn -p und sn -tp oder ein plattformübergreifendes .NET-Skript; danach gehört er in die Key-Metadaten eines InternalsVisibleTo-Elements in der .csproj. Behandelt werden außerdem der Fallback über die PublicKey-Eigenschaft, der DynamicProxyGenAssembly2-Schlüssel für Moq und die Falle mit Zeilenumbrüchen.

Windows-Sitzungsereignisse für Sperren, Entsperren, Anmelden und Abmelden in einer C#-App erkennen

Verwenden Sie SystemEvents.SessionSwitch in einer Desktop- oder Konsolen-App, überschreiben Sie OnSessionChange in einem Windows-Dienst oder hängen Sie sich selbst in WM_WTSSESSION_CHANGE ein. Mit .NET 10-Code für alle drei Varianten, dem versteckten Thread '.NET System Events', dem Grund, warum Dienste die Anmeldung sehen, Desktop-Apps aber nicht, Benachrichtigungen in falscher Reihenfolge und der Abfrage des aktuellen Sperrzustands mit WTSQuerySessionInformation.

So setzen Sie PostgreSQL-Sitzungsparameter wie search_path oder statement_timeout bei jeder EF Core Verbindung mit Npgsql

Ein einmal ausgeführtes SET wird von DISCARD ALL gelöscht, sobald Npgsql die Verbindung an den Pool zurückgibt. Legen Sie search_path und statement_timeout mit den Connection-String-Schlüsselwörtern Search Path und Options ins Startup-Paket, weichen Sie bei Bedarf auf ALTER ROLE oder einen ConnectionOpened-Interceptor aus, und erfahren Sie, warum UsePhysicalConnectionInitializer sein SET stillschweigend verliert.
Zurück Weiter