【发布时间】:2016-03-19 13:02:30
【问题描述】:
我有一个 n 层应用程序。前端是一个 MVC 站点(如果有区别的话)。 MVC 站点、业务逻辑和 DAL 都可以访问特定的共享 DLL,其中定义了 Singleton 类。
这一切正常,就好像我在 DAL 中为 Singleton 的属性 Bar 分配了一个值“foo”,前端在访问 Bar 时会看到“foo”。
问题是,还有什么else可以看到Singleton?如果其他用户登录到我的 MVC 应用程序并且该页面的页面将Bar 属性设置为“Fred”。当我的第一个用户访问Bar 时会看到什么。
单例真的是该类的唯一实例吗?或者它是给定用户该类的唯一实例?
如果第一个用户在同一个应用程序的浏览器中打开另一个窗口怎么办?如果他导致Bar在一个窗口中更改,是否在另一个窗口中更改?
【问题讨论】:
-
如果你正确地实现了单例,那么单个实例应该在整个 AppDomain 中可见。但不能知道,因为你没有发布任何代码。
标签: c# asp.net-mvc scope singleton