我目前在使用的应用程序上遇到了一些问题。
我目前使用单例设计模式来获取一个对象,该对象包含对外部文件的引用,但是我遇到的问题是,在运行了一次之后,集合不会更新以反映任何更改在外部文件中(因为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;
}
}
读取外部文本文件。
我遇到的问题是如果这次运行不止一次,那么这些值已经设置好了,这对我来说没用,因为它们每周都会在外部文本文件上更新几次!
道歉,如果我没有很好地解释这一点,但我认为这可能是许多人遇到的常见问题。
答案 0 :(得分:0)
正如我在评论中所说,你的单身人士不是线程安全的。 Jon Skeet has a wonderful section on Singletons你应该查看。
现在,谈谈你的下一个问题。
正确实现的Singleton模式意味着只会是对象的一个实例。您的Web请求正在构造函数中执行。由于实现了单例模式,因此构造函数只会执行一次。你知道我要去哪儿吗?
在不了解您的问题的情况下,老实说,我不知道这里需要一个单身人士。为什么不在需要新数据时调用方法?