我正在使用 MVC5 和 Unity。我对线程安全单例的阅读有点困惑。多个用户是否共享同一个单例对象?我的理解是,将为每个请求创建一个单例对象,并且两个用户各有自己的单例。这是正确的吗?
[更新]
假设我有一个带有 property
实例的 Singleton
类来获取实例。两个同时访问网站的用户在调用Instance
时是否会访问同一个单例对象?对象的范围是什么?范围是由多个用户共享还是每个用户都有自己的范围?实例会为两个用户返回相同的对象吗?
最佳答案
这取决于您使用的确切生命周期管理器。如果“单例”指的是容器控制的生命周期管理器,那么该实例将由所有用户共享,并且不会在请求的生命周期内创建。
另一方面,每个 http 上下文生命周期管理器完全按照您的预期执行。
不过,其名称中都没有“singleton”。
关于entity-framework - Unity单例多请求访问ASP.Net MVC 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25772712/