關於Web Api,是否有靜態類在每次請求時加載到內存中?如果沒有,應該用什麼來爲每個請求使用相同的靜態類並將其加載到內存中一次?我正在考慮加載包含字典的類。Web Api和靜態類
0
A
回答
1
一個靜態類被加載一次,靜態成員在所有實例之間共享 - 如果你想共享一個字典,然後聲明它是一個類的靜態成員(類本身不需要是靜態的)。
需要注意的一件事是:如果您的應用程序在IIS下運行並且您將其配置爲允許多個流程實例,那麼這些實例不會共享靜態類實例,因爲它們處於不同的進程中。這不是默認設置 - 如果您使用默認的IIS設置,那麼只有一個進程將爲請求提供服務,您將會很好 - 否則您將需要採用不同的方法,例如二級共享內存緩存或服務或數據庫然後成爲字典的共享存儲。
0
靜態類型僅在每個應用程序域中初始化且僅在引用時才初始化。 Web API 4.x和以前的(不是核心版本)託管在IIS中,該站點在每個站點的自己的應用程序域1域中承載該站點。
如果你想要一個共享的只讀字典,那麼你可以使用一個靜態類型,它將被加載一次,並且所有加載的實例都可以引用同一個字典,而不管他們在什麼請求上。我不主張這個想法,因爲這將會進入意見領域,我只是說這是可能的。
相關問題
- 1. winforms靜態類到Web
- 2. Combinig靜態類和非靜態類
- 3. 子類化QMessageBox靜態API
- 4. 靜態類中的靜態變量和非靜態類中的靜態變量
- 5. 靜態類和Getter
- 6. 聲明類的靜態和非靜態
- 7. 靜態類和靜態方法
- 8. Java:非靜態類和靜態調用
- 9. 靜態和動態類型
- 10. 靜態主類靜態類?
- 11. 如何從Web API 2中的靜態類使用StructureMap?
- 12. 在靜態類中調用靜態方法C#ASP.NET Web窗體
- 13. Spring Rest API和不帶後綴的靜態Web內容訪問
- 14. SQLite C中的靜態和非靜態準備狀態API
- 15. 靜態類在Web應用程序
- 16. 使用節點作爲api和靜態
- 17. 靜態與非靜態類
- 18. Java類和靜態方法
- 19. Ninject和靜態類 - 如何?
- 20. 靜態類型和轉換
- 21. 靜態類和繼承
- 22. Singleton類,GraphicsManager和靜態
- 23. Zend和靜態類屬性
- 24. C#靜態類和範圍
- 25. PHP和靜態類方法
- 26. C#繼承和靜態類
- 27. 擴展類和靜態值
- 28. 靜態/類變量和GUI
- 29. 激活器和靜態類
- 30. C++ /本和靜態類名