在整个应用程序中访问数据的最佳方法是什么?在我的具体示例中,我将应用程序的设置从XML文件加载到Settings-Object的实例中,我不想让这些设置为绝对常量,因为用户应该能够更改这些(并且看到没有重新启动程序的效果。
现在,我需要在其他类的方法中使用某些(属性)设置,但是这样它们是不可访问的。那么在什么样的对象'我应该存储设置吗?我不认为在我的应用程序中需要设置的每个方法都必须查看XML本身。此外,将设置实例传递给我使用的每个其他类似乎太麻烦了。
提前致谢!
答案 0 :(得分:9)
在C#中,我总是使用静态类来提供此功能。静态类详见here,但简单地说它们只包含静态成员而没有实例化 - 实质上它们是全局函数和通过类名(和名称空间)访问的变量。
这是一个简单的例子:
public static class Globals
{
public static string Name { get; set; }
public static int aNumber {get; set; }
public static List<string> onlineMembers = new List<string>();
static Globals()
{
Name = "starting name";
aNumber = 5;
}
}
注意,我也使用静态初始化程序,保证在使用/调用任何成员或函数之前的某个时刻运行。
在您的计划的其他地方,您可以简单地说:
Console.WriteLine(Globals.Name);
Globals.onlineMembers.Add("Hogan");
要响应评论而重新声明,静态对象只能“创建”一次。因此,您的应用程序使用对象的任何地方都将来自同一位置。根据定义,它们是全球的。要在多个位置使用此对象,只需引用对象名称和要访问的元素。
答案 1 :(得分:3)
定义一些简单的Configuration
(比如)类:
public static class Configuration
{
/*runtime properties */
public static void LoadConfiguration(..)
{
/*Load from file a configuration into the static properties of the class*/
}
public static bool SaveConfiguration(...)
{
/*Save static properties of the class into the configuration file*/
}
}
如果由于某种原因错过配置文件,请不要忘记默认配置。
希望这有帮助。
答案 2 :(得分:0)
听起来像Settings项目页面的完美使用。您可以设置默认值,可以在应用程序的运行之间修改和保存它们。
答案 3 :(得分:0)
您可以拥有一个带静态属性的静态类来获取和设置