コード検査: 短命の「HttpClient」
このインスペクションは、メソッド内や using ブロック内など、短命なスコープ内で HttpClient がインスタンス化されるケースを識別します。
HttpClient は IDisposable を実装していますが、一度インスタンス化すればアプリケーションのライフサイクル全体を通して再利用されるように設計されています。リクエストごとに新しいインスタンスを作成すると、ソケットが枯渇する可能性があります。これは、HttpClient が破棄された後でも、基盤となるソケットがオペレーティングシステムによってすぐに解放されない(TIME_WAIT 状態のままになる)ためです。
このインスペクションに対する応急処置は、HttpClient インスタンスを private static readonly フィールドに昇格させることで、複数の呼び出しで再利用されるようにします。
関連ページ:
コードインスペクション設定を構成する
設計時コードインスペクションを構成する:デフォルトでは、ReSharper は、サポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかに関係なく、コードインスペクションは常に特定のスコープで実行できます。メインメニューからを選択するか、Alt+R O を押してから、左側のを選択します。設計時コードインスペクションを切り替えるには、コード分析を有効にするチェックボックスを使用し...
コード検査: '.OfType<T>()' に置き換える
このインスペクションは、式を使用して要素を型でフィルタリングする LINQ 呼び出しと、それに続く呼び出しを識別します。これらの複合操作は、より簡潔で読みやすいへの単一の呼び出しに置き換えることができます。public void Sample(object[] objects) { _ = objects.Where(a => a is List<string?>).Cast<List<string>>(); }public void Sample(obj...