5

在整个 wole 应用程序中访问数据的最佳方式是什么?在我的具体示例中,我将应用程序的设置从 XML 文件加载到 Settings-Object 的实例中,并且我不想将这些设置为绝对常量,因为用户应该能够更改这些(并查看效果) 无需重新启动程序。

现在,我需要在其他类的方法中使用某些(的属性)设置,但是这样它们就无法访问了。那么我应该将设置存储在哪种“对象”中?我认为需要在我的应用程序中进行设置的每个方法都必须查看 XML 本身并不是一件好事。此外,将设置实例传递给我使用的所有其他类似乎太麻烦了。

提前致谢!

4

4 回答 4

9

在 C# 中,我总是使用静态类来提供此功能。此处详细介绍了静态类,但简要地说,它们仅包含静态成员且未实例化——本质上它们是通过类名(和命名空间)访问的全局函数和变量。

这是一个简单的例子:

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");

为了响应评论重新声明,静态对象仅“创建”一次。因此,您的应用程序使用该对象的任何地方都将来自同一位置。根据定义,它们是全球性的。要在多个地方使用此对象,只需引用对象名称和要访问的元素。

于 2012-08-02T15:49:50.810 回答
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*/
    }
}

不要忘记默认配置,以防由于某种原因丢失了配置文件。

希望这可以帮助。

于 2012-08-02T15:47:12.320 回答
0

听起来像是对设置项目页面的完美使用。您设置默认值,它们可以在应用程序运行之间进行修改和保存。

于 2012-08-02T16:00:01.647 回答
0

您可以拥有一个具有静态属性的静态类来获取和设置

于 2012-08-02T16:00:22.360 回答