StructureMap配置文件是否安全?

时间:2009-09-29 21:02:35

标签: .net thread-safety structuremap

我正在考虑使用StructureMap的配置文件,以便根据经过身份验证的用户类型在我的网络应用中提供轻微的行为差异。我的问题是,如果我做了类似

的事情
ObjectFactory.Profile = Session["UserType"];

它是否是线程安全的,或者在根据配置文件解析事物时,同时请求是否会相互干扰?

1 个答案:

答案 0 :(得分:2)

静态ObjectFactory外观上的操作都是“线程安全的”。这意味着您可以安全地在不同的线程上调用它们,而不会破坏ObjectFactory的内部状态。

但是,您要问的是每个线程是否都有自己的ObjectFactory个人副本,答案是否定的。您在任何线程上对ObjectFactory所做的任何更改都将反映在AppDomain中的所有其他线程中。

“个人档案”功能可能不是您要寻找的解决方案。您可能希望使用类似命名的实例:

ObjectFactory.GetInstance<ISomeService>( Session["UserType"] );

还有其他潜在的解决方案,具体取决于您的尝试。考虑发布一个关于您要解决的问题的问题,例如:“我如何根据当前用户的UserType获得不同的行为......”