Start Debugging

タグ: dotnet

422 件 · ページ1/43

C# の Lazy<T>、LazyInitializer.EnsureInitialized、ダブルチェックロッキングの比較
基本は Lazy<T> を使ってください。ファクトリを 1 回だけ実行し、例外をキャッシュし、初期化後の読み取りは計測できないほど軽量です。多数のフィールドや配列スロットを遅延初期化していて、値ごとの追加オブジェクトを避けたい場合は LazyInitializer.EnsureInitialized を使います。手書きのダブルチェックロッキングは、.NET 10 ではほとんど割に合いません。
MAUI 10.0.120: BlazorWebView がついに Windows でのファイルドロップと Android での画像ドラッグに対応
.NET MAUI 10.0.120 は Windows の BlazorWebView で AllowDrop を有効にし、Android では AndroidX の DropDataContentProvider を登録します。これにより Blazor Hybrid のドロップゾーンがプラットフォーム固有のコードなしで動作します。変更内容、新しい MauiEnableAndroidWebViewDragDrop スイッチ、MAUI1002 警告を解説します。
修正: HttpProtocolException: The HTTP/2 server reset the stream. HTTP/2 error code 'PROTOCOL_ERROR'
ピアが 1 つのリクエストに対して PROTOCOL_ERROR 付きの RST_STREAM を送信しました。HttpClient は自動では再試行しません。どのホップがストリームをリセットしたかを特定し、拒否されたリクエストを修正し、冪等な呼び出しだけを再試行し、最後の手段としてそのホップを HTTP/1.1 に切り替えます。
2026-10-21 mcpdotnetcsharp
MCP C# SDK 2.3: McpClient.ServerInfo が null 許容になりました。ビルドに影響する可能性があります
2026年10月20日にリリースされた ModelContextProtocol 2.3.0 では、2026-07-28 のサーバーが server/discover で自身の識別情報を省略できるため、McpClient.ServerInfo が Implementation から Implementation? に変わりました。その理由、警告をエラー扱いにしている場合に何が壊れるか、1 行で済む修正方法を解説します。
期限切れの MemoryCache エントリはどうなるのか、そして実際にメモリから削除されるのはいつか
期限切れの MemoryCache エントリは、タイマーでは削除されません。読み取りが触れるか、スロットリングされたバックグラウンドスキャンが走るか、コンパクションが起動するまで、ディクショナリに残り続けます。それぞれがいつ起きるのか、そして積極的なエビクションを実現する方法を解説します。
OpenTelemetry .NET 1.20: ConfigureSampler でライブラリがアプリのサンプラーをラップできるようになりました
2026年10月15日にリリースされた OpenTelemetry .NET 1.20.0 で TracerProviderBuilder.ConfigureSampler が追加されました。ライブラリは、SetSampler、OTEL_TRACES_SAMPLER、またはデフォルトから SDK が解決したサンプラーを黙って上書きするのではなく、ラップできるようになります。
.NET でインドのラーク/クロール方式の桁区切りで数値をフォーマットする方法 (NumberGroupSizes)
en-IN カルチャを使うか NumberFormatInfo.NumberGroupSizes を [3, 2] に設定すると、C# で 123,456,789 ではなく 12,34,56,789 と出力できます。.NET 10 と .NET 11 RC1 で検証し、配列の仕組み、CurrencyGroupSizes が別である理由、欧米式の桁区切りが黙って出力されるインバリアントグローバリゼーションの落とし穴、ラーク/クロールの単位表記ヘルパーを解説します。
次へ