我知道这一定是一个古老而疲惫的问题,但我似乎无法通过我的可信赖的朋友(又名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