我正在开发一个使用WPF / c#开发桌面应用程序的项目,并在数据库中存储了一些配置。我想将这些配置从数据库加载到数组(例如,用户安全性priveleges),以在所有页面上的所有项目中使用主题。我没有每次都对数据库进行查询调用,而是想在打开应用程序时加载它们一次。那么,如何在所有c#文件中创建一个数组或任何变量(int或string),这些文件对应于我在项目中的所有页面/帧。
答案 0 :(得分:1)
如果您希望它在启动时立即发生,您可以转到App.xaml.cs文件(默认位置是项目根文件夹)并向构造函数添加一个函数来加载全局变量。如果您希望用户输入登录凭据,您可以相应地移动LoadUserPermissions
方法并让它从那里更新全局变量。
public static class Globals
{
public static int UserId;
public static string UserGroup;
}
public partial class App : Application
{
public App()
{
LoadUserPermissions();
}
public void LoadUserPermissions()
{
string username = Environment.UserDomainName;
DBClass db = new DBClass();
Globals.UserId = db.GetUserIdFromDatabase(username);
Globals.UserGroup = db.GetUserGroupFromDatabase(username);
}
}
您必须更新此内容以匹配您的授权模型,无论是域驱动还是数据库驱动。上面的例子是域驱动的。