单身模式与REST

时间:2018-03-07 16:01:53

标签: c# singleton

我目前在使用的应用程序上遇到了一些问题。

我目前使用单例设计模式来获取一个对象,该对象包含对外部文件的引用,但是我遇到的问题是,在运行了一次之后,集合不会更新以反映任何更改在外部文件中(因为Statistics对象已经存在,并且如果Statistics对象不存在,它只根据外部文件创建一个新变量。)

我的单身人士如下:

InventSum.ClosedQty

Statistics类的构造函数包含以下代码:

    private static Statistics statistics;

    public static Statistics Instance
    {
        get
        {
            if (statistics == null)
            {
                statistics = new Statistics();
            }
            return statistics;
        }
        private set
        {
            statistics = value;
        }
    }

读取外部文本文件。

我遇到的问题是如果这次运行不止一次,那么这些值已经设置好了,这对我来说没用,因为它们每周都会在外部文本文件上更新几次!

道歉,如果我没有很好地解释这一点,但我认为这可能是许多人遇到的常见问题。

1 个答案:

答案 0 :(得分:0)

正如我在评论中所说,你的单身人士不是线程安全的Jon Skeet has a wonderful section on Singletons你应该查看。

现在,谈谈你的下一个问题。

正确实现的Singleton模式意味着只会是对象的一个​​实例。您的Web请求正在构造函数中执行。由于实现了单例模式,因此构造函数只会执行一次。你知道我要去哪儿吗?

在不了解您的问题的情况下,老实说,我不知道这里需要一个单身人士。为什么不在需要新数据时调用方法?