我在流程开始时按如下方式创建处理对象:
using (var lifetime = EngineContext.Current.BeginLifetimeScope())
{
var sourceService = lifetime.Resolve<SourceService>();
// do things...
}
SourceService类依赖于也通过构造函数注入(inject)在AutoFac中注册的其他对象。
这些对象是否自动继承与其“父对象”(即sourceService)相同的生命周期范围?
最佳答案
这取决于它们如何注册。InstancePerLifetimeScope
=每个范围一个。
例子:
builder.Register<YourClass>()
.AsImplementedInterfaces()
.InstancePerLifetimeScope();
你可以在这里阅读更多:
http://autofac.readthedocs.io/en/latest/lifetime/instance-scope.html