- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 ASP.NET MVC 项目中,我有一个通过 Structuremap 实例化并配置为单例的类。
鉴于 ASP.NET 本质上是多线程的,单例模式默认情况下不是线程安全的,它会导致任何问题吗?
我遇到了一个问题,即为配置为 Singleton 的类返回多个实例。这个问题可能是因为从不同线程请求的实例。
编辑:关于这个问题给出了更详细的描述。 Structuremap in Singleton returning multiple instances
EDIT2:这是对我的类(class)做什么的描述
class DerviedClass: BaseInterface
{
ISession session
DerivedClass()
{
session = ObjectFactory.GetInstance<ISession>();
}
public bool DoWork
{
return session.QueryOver<MyTable>().RowCount() > 0;
}
}
最佳答案
考虑到您的扩展版本,DerviedClass
的示例:我会说,这是一个非常危险的,并且可能会导致很多问题。
我的担忧:
1) ASP.NET
+ NHibernate
== ISession
按请求。换句话说,当应用程序启动时(最有可能由第一个请求触发,如果自动重启到位则可能更频繁),将创建单例并为其提供 ISession< 的实例
每个当前请求,即第一个请求。
至少,ISession
应该在需要时通过 Factory
接收,以确保它与当前请求 相关。
2) 如果在构造函数中创建的 NHibernate ISession
旨在独立于当前请求,则可能意味着:
重点是,我在这里看不到单例模式的好处。我们不需要也不提供通用的、要求独立的东西。
我们确实根据请求(及其 session 范围)返回数据。所以,我建议使用:
.HybridHttpOrThreadLocalScoped()
与逻辑生命周期使用的好处相比,为每个请求创建实例的开销是微不足道的。
但是,是的,这只是我的建议...因为我看到许多潜在的问题(锁定、非预期的更改、 session 中可能提交的脏对象等)
关于c# - ASP.NET 多线程是否影响 Structuremap 单例类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16919579/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!