我遇到了Singleton模式的问题.
这真的很奇怪,但看起来我的Singleton模式有两三个实例.我的网站,是一个动作网站,有计时器,我正在使用我的Singleton对象处理这些计时器和价格.
发生的事情是有些人看到一些价格,而其他人总是在不同的网络中看到其他价格.
例如,在我的办公室,我的人看到一些0.56美分的拍卖,每个人都看到相同的,但在另一个网络,例如,我的房子,我看到0.55美分,而计时器有不同的价值.
话虽如此,我已经通过生成GUID并将其记录在我的日志文件中来测试我的Singleton.这是一些代码
public class Singleton
{
private static Singleton instance;
private static System.Threading.Mutex mutex;
System.Guid token;
private Singleton() {
token = System.Guid.NewGuid();
Logger.Log("New singleton Instance" + token.toString());
}
static Singleton()
{
instance = new Singleton();
mutex = new System.Threading.Mutex();
}
public static Singleton Acquire()
{
mutex.WaitOne();
return instance;
}
// Each call to Acquire() requires a call to Release()
public static void Release()
{
mutex.ReleaseMutex();
}
public void SomeAction()
{
Logger.Log(token.toString() + " - SomeAction");
}
} …Run Code Online (Sandbox Code Playgroud) 我正在为我的公司构建一个Web项目的原型,我的想法就是像模板一样开始构建一个新项目,其中包含已经完成的所有必要工作,安全性,IoC,日志记录等等......
我正在模板的安全方面工作......在开始时我想创建一个自定义安全提供程序......但后来我意识到,微软已经使用成员资格做了...如果任何项目需要一个不同的提供商......他们只需要改变web.config就可以了....
但后来谈到我的问题......如果我希望不同的层能够获取用户信息......就像服务层(业务服务......而不是Web服务),我需要包含System.Web和System.Web.ApplicationServices到该类库.
这是一种不好的做法吗?我不想重新发明轮子,微软会员模型足以满足我的需求.
谢谢!