我知道這一定是一個古老而疲憊的問題,但我似乎無法通過我的可信賴的朋友(又名Google)找到任何東西。Winforms:在整個應用程序中訪問類屬性
我有一個.NET 3.5的C#WinForms應用程序,呈現與應用程序啓動時登錄表單的用戶。成功登錄後,我要逃跑到數據庫中,一些用戶特定的數據拉,並把它們(在屬性)在一個叫AppCurrentUser.cs類,可隨後上可以在所有課程中的裝配訪問 - 這裏的目的是我可以用一次性的數據讀取來填充一些屬性,而不是每次需要時都調用數據庫。在Web應用程序中,我通常會使用會話變量,並且我知道WinForms中不存在該概念。
類結構如下所示:
public class AppCurrentUser {
public AppCurrentUser() { }
public Guid UserName { get; set; }
public List<string> Roles { get; set; }
public string Firstname { get; set; }
public string Lastname { get; set; }
}
現在,我有一些我需要一些專家的意見選擇:
是一個「啞巴」類,我應該做的屬性非靜態的,實例化類,然後設置屬性......但是,我只能從它創建的類中訪問該實例,對吧?
從邏輯上講,我認爲,這些屬性應該是靜態的,因爲我將只使用類一次整個應用程序(和不創造它的新實例),它的屬性值將被「復位」上申請關閉。 (如果我創建它的一個實例,我可以在應用程序關閉處理掉吧)
我應該如何構建我的課怎麼辦我訪問它的屬性在所有課程中我的組裝?我真的很感謝你對此的誠實和有價值的建議!
謝謝!
嗨!謝謝回覆!不,我的BL在一個單獨的類中,並從UI中調用。此外,我有效與我的靜態與非靜態參數? – Shalan 2009-08-10 23:03:45
立即閱讀StructureMap – Shalan 2009-08-10 23:05:59
我會說DI在這裏是過度殺傷。 Shalan聽起來像他可能是一個初學者,應該避免依賴注入,直到像Singleton Pattern這樣的更基本的概念 - 如你所說 - 更好地掌握。 – xanadont 2009-08-10 23:14:07