我在流程开始时按如下方式创建处理对象:

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

10-07 15:12