Tag: 单位工作

Singleton每呼叫上下文(Web请求)在Unity

前几天我用ASP.Net线程有这个问题。 我想每个Web请求有一个单例对象。 我实际上需要这个工作单位。 我想为每个Web请求实例化一个工作单元,以便通过请求标识映射是有效的。 这样我就可以使用IoC将我自己的IUnitOfWork透明地注入到我的存储库类中,并且可以使用同一个实例来查询并更新我的实体。 由于我使用Unity,我错误地使用了PerThreadLifeTimeManager。 我很快意识到,ASP.Net线程模型不支持我想要的。 基本上它使用一个theadpool和回收线程,这意味着我得到一个UnitOfWork每个线程! 但是,我想要的是每个Web请求的一个工作单元。 有一点使用Google给了我这个伟大的职位 。 那正是我想要的; 除了很容易达到的统一部分。 这是我实现PerCallContextLifeTimeManager为统一: public class PerCallContextLifeTimeManager : LifetimeManager { private const string Key = "SingletonPerCallContext"; public override object GetValue() { return CallContext.GetData(Key); } public override void SetValue(object newValue) { CallContext.SetData(Key, newValue); } public override void RemoveValue() { } } 当然,我用这个来注册我的工作单位,代码如下: unityContainer .RegisterType<IUnitOfWork, MyDataContext>( new […]