【发布时间】:2015-06-03 17:37:52
【问题描述】:
在一个 web api 控制器函数中,我使用两个服务,因为它们做独立的事情,我希望它们使用不同的工作单元(事务)。
所有必要的组件(工作单元、存储库)都通过 Castle Windsor 与 LifestylePerWebRequest 注入。
据我了解,解决方案是使用 LifeStyleScoped,但我有两个问题:
- 我只希望 LifeStyleScoped 用于这种特殊情况,而不是一般情况
- 我找不到一个如何在控制器中使用 LifeStyleScoped 的示例。
任何其他建议或代码示例将不胜感激。
编辑:我没有提到 unitofwork 没有显式注入控制器中。在控制器中注入了两个服务,这些服务使用通过 Castle Windsor 创建的工作单元。
public class SomeController : ApiController
{
private readonly IService _service1;
private readonly IService _service2;
public SomeController (IService service1, IService service2)
{
_service1= service1;
_service2= service2;
}
public IHttpActionResult SomeAction()
{
_service1.DoSomething();
_service2.DoSomething();
}
}
public Service : IService
{
public Service(IUnitOfWork uow) {
}
}
【问题讨论】:
标签: c# asp.net-web-api castle-windsor