我有一個WinForms項目,它使用了大量的用戶控件。其中一些用戶控件使用來自業務邏輯層的類。這些類主要對數據庫執行CRUD操作(通過數據訪問層)以及一些額外的驗證和報告。在靜態類中存儲全局不可變數據
該項目使用的一些常見的物體(已登錄用戶,一些控制器和驗證器),其被實例化在主要形式,然後通過初始化方法或公共屬性注入到兒童用戶控件。這意味着我有很多代碼,只是將這些常用對象從父控件傳遞給子控件。
爲了避免這種情況,我可以創建一個靜態類(ApplicationContext的舉例)和所有的通用控件保存到它。這將發生在主窗體中,並且項目中的所有其他用戶控件或窗體都可以使用它。
我看到這種模式一般不鼓勵(存儲在靜態類的一些全局數據)。但如果這些數據是不可變的呢?這種方法是否是一個好主意?
或者你知道的任何其他方法,這可以幫助我擺脫所有的初始化代碼?
IoC容器就是我一直在尋找,謝謝。我選擇了ninject :) – sventevit