在Web API控制器函数中,我使用了两个服务,由于它们执行的是独立的任务,我希望它们使用不同的工作单元(事务)。
所有必要的组件(工作单元、仓储库)都通过Castle Windsor进行注入,并采用LifestylePerWebRequest模式。
据我所知,解决方案是使用LifeStyleScoped,但我有两个问题:
1. 我只想针对这个特定情况使用LifeStyleScoped,而不是普遍使用。 2. 我找不到如何在控制器内使用LifeStyleScoped的单一示例。
如果有其他建议或代码示例将不胜感激。
编辑:我没有提到工作单元并没有在控制器中显式注入。两个服务被注入到控制器中,并且这些服务使用通过Castle Windsor创建的工作单元。
所有必要的组件(工作单元、仓储库)都通过Castle Windsor进行注入,并采用LifestylePerWebRequest模式。
据我所知,解决方案是使用LifeStyleScoped,但我有两个问题:
1. 我只想针对这个特定情况使用LifeStyleScoped,而不是普遍使用。 2. 我找不到如何在控制器内使用LifeStyleScoped的单一示例。
如果有其他建议或代码示例将不胜感激。
编辑:我没有提到工作单元并没有在控制器中显式注入。两个服务被注入到控制器中,并且这些服务使用通过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) {
}
}