我知道这一定是一个古老而疲惫的问题,但我似乎无法通过我可信赖的朋友(又名谷歌)找到任何东西。
我有一个 .net 3.5 c# winforms 应用程序,它在应用程序启动时向用户显示登录表单。成功登录后,我想跑到数据库,拉入一些特定于用户的数据并将它们(在属性中)保存在一个名为AppCurrentUser.cs的类中,可以跨程序集中的所有类访问该类 - 目的在这里,我可以使用一次性读取的数据填充一些属性,而不是每次需要时都调用数据库。在 web 应用程序中,我通常会使用 Session 变量,我知道 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; }
}
现在,我有一些选项需要专家建议:
作为一个“哑”类,我应该使属性非静态,实例化该类,然后设置属性......但是我只能从创建它的类中访问该实例,对吧?
从逻辑上讲,我相信这些属性应该是静态的,因为我只会在整个应用程序中使用该类一次(而不是创建它的新实例),并且它的属性值将在应用程序关闭时“重置”。(如果我创建它的一个实例,我可以在应用程序关闭时处理它)
我应该如何构建我的类以及如何在我的程序集中的所有类中访问它的属性?我真的很感激你在这方面的诚实和有价值的建议!!
谢谢!