如果共享程序集(在GAC中)具有靜態字段,並且字段值已更新,是否會反映在引用共享程序集的客戶端應用程序中? 或者客戶端應用程序是否需要重建?共享程序集中的靜態字段
3
A
回答
5
在.NET靜態庫中,每個編號爲AppDomain,因此即使程序集位於GAC
中,其中聲明的任何靜態變量的作用域都只存在於引用的AppDomain中。 如果你正在靜態初始化爲一個靜態(獨立或不只讀),它將自動反映在使用它的所有程序集中,而不用重新編譯它們。
5
如果該字段表示爲const
:
public const int Foo = 100;
,那麼你就需要重建所有的客戶端應用程序,因爲該值將被烤到這些客戶端。
如果它只是一個公共靜態只讀字段:
public static readonly int Foo = 100;
...那麼你就不會需要重建客戶端。該值將在執行時從程序集中提取。 (當然,客戶端需要使用執行新的程序集,因此您需要考慮版本控制等)。
0
如果字段未標記爲常量,則不需要重新編譯客戶端每次訪問該字段時都會返回該值。
如果它被標記爲常量,那麼客戶端將需要重新編譯,因爲在編譯時該字段的值被「烘焙」。
相關問題
- 1. 共享庫中的靜態全局字段 - 他們去哪裏?
- 2. 我們可以在應用程序域共享一個靜態字段嗎?
- 3. 在c#中創建一個共享靜態字段#
- 4. 程序在內存和靜態/共享庫中的位置
- 5. WCF和共享程序集
- 6. 共享程序集(DLL)中的ASP.NET webservices
- 7. Java線程不共享靜態數據
- 8. 兩線程共享靜態變量
- 9. 共享對象中的靜態庫中的靜態函數
- 10. 從屬功能JUnit測試不能共享靜態字段
- 11. 共享和靜態庫
- 12. 共享iPhone靜態庫
- 13. 共享AMP中的靜態HTML頁面
- 14. Swift中的共享(或靜態)變量
- 15. 在.NET中共享程序集
- 16. 在靜態方法和靜態事件處理程序之間共享數據
- 17. 從非靜態/共享方法調用靜態/共享方法,好還是壞?
- 18. 共享庫的插件程序集
- 19. 如何在ES6課程中創建「公共靜態字段」?
- 20. 混合靜態和動態(共享)庫?
- 21. 鏈接一個共享庫靜態到我的共享庫
- 22. 類之間的共享偏好(靜態)?
- 23. 共享(靜態)類與C#的活動
- 24. 取決於共享庫的靜態庫
- 25. 共享庫內部的靜態變量
- 26. 如何在WCF中的進程間共享靜態對象?
- 27. 使用公共字符串數組的靜態內容的非靜態字段
- 28. 如何將數據段共享到程序集8086?
- 29. kotlin中的靜態字段
- 30. Android中的靜態字段