Web Apiに関して、静的クラスはすべての要求でメモリにロードされていますか?そうでない場合は、すべての要求に対して同じ静的クラスを使用し、それを一度メモリにロードするために何を使用する必要がありますか?私は辞書を含むクラスを読み込むことを考えています。Web APIと静的クラス
0
A
答えて
1
静的クラスは一度読み込まれ、静的メンバーはすべてのインスタンス間で共有されます。辞書を共有する場合は、クラスの静的メンバーとして宣言します(クラス自体は静的である必要はありません)。
注目すべき重要な点は、アプリケーションがIISで実行されていて、複数のプロセスインスタンスを許可するように設定している場合、それらのインスタンスは異なるプロセスにあるため静的クラスインスタンスを共有しません。これはデフォルトではありません。デフォルトのIIS設定を使用する場合は、1つのプロセスだけが要求にサービスを提供し、うまくいきます。そうでなければ、セカンダリ共有メモリ内のキャッシュやサービス、データベースなどの別のアプローチが必要です。辞書の共有記憶域になります。
0
静的型は、アプリケーションドメインごとに1回のみ参照されるときにのみ初期化されます。 Web API 4.x以前(コアバージョンではありません)は、サイトごとに独自のアプリケーションドメイン1ドメイン内のサイトをホストするIISでホストされています。
共有読み取り専用ディクショナリが必要な場合は、静的型を使用できます。ロードされたインスタンスはすべてロードされ、ロードされたすべてのインスタンスは同じ辞書を参照できます。私はこのアイデアを提唱していません、それは意見の領域に入るだろう、私は単にこれが可能であると述べています。
関連する問題
- 1. Web API 2の静的オブジェクト
- 2. 静的クラスと静的メソッド
- 3. 静的クラスC#ASP.NET Webフォームで静的メソッドを呼び出す
- 4. 静的クラスとシングルトン
- 5. 静的クラスとシングルトン
- 6. クラスと静的メソッド
- 7. ConfigurationManagerと静的クラス
- 8. C++静的クラスと非静的クラスのメンバ
- 9. 静的Webメソッド
- 10. ガベージコレクタと静的クラス、変数
- 11. シングルトンと静的クラスのケーススタディ
- 12. 静的クラスと継承
- 13. スレッドセーフと静的クラスのジェネリック
- 14. 静的でない静的Webサービス
- 15. ベース静的クラス
- 16. 静的クラス
- 17. 静的クラス
- 18. 静的クラスのオブジェクトインスタンス
- 19. パブリック静的クラスのC#テストプライベート静的メソッド
- 20. 静的なWebメソッド
- 21. 静的Web with PHP
- 22. 静的クラスと複数の同時リクエスト
- 23. ASP.NET Web APIと[Serializable]クラス
- 24. 静的なネストされたクラスと非静的なエラー
- 25. 関数内静的変数と静的クラス変数の比較
- 26. 静的クラスはPhpStorm
- 27. は、静的クラスに
- 28. Spring Wire静的クラス
- 29. 静的クラスのメンバ
- 30. 静的クラスのNullReferenceException