【发布时间】:2016-03-24 15:09:19
【问题描述】:
我找不到任何关于如何将 Autofac 与 Lazy 和生命周期范围一起使用的文档。得到一个关于
的错误"从范围中看不到具有与“事务”匹配的标记的范围 请求实例的位置..."
在我的控制器构造函数中:
public HomeController(Lazy<ISalesAgentRepository> salesAgentRepository, Lazy<ICheckpointValueRepository> checkpointValueRepository)
{
_salesAgentRepository = new Lazy<ISalesAgentRepository>(() => DependencyResolver.Current.GetService<ISalesAgentRepository>());
_checkpointValueRepository = new Lazy<ICheckpointValueRepository>(() => DependencyResolver.Current.GetService<ICheckpointValueRepository>());
}
在我的行动中:
using (var transactionScope = AutofacDependencyResolver.Current.ApplicationContainer.BeginLifetimeScope("transaction"))
{
using (var repositoryScope = transactionScope.BeginLifetimeScope())
{
// ....
}
}
生命周期范围与 Lazy 不兼容还是我完全弄错了?
【问题讨论】:
标签: c# asp.net-mvc dependency-injection autofac lazy-initialization