Из-за общих требований к времени жизни Engine
вы не можете внедрить в него расширения области запроса. То, что вы могли бы иметь, - это метод или свойство в Engine, которое будет активно разрешать коллекцию расширений из текущей области запроса.
Итак, сначала позвольте Engine
взять зависимость конструктора:
public class Engine
{
public Engine(..., Func<IExtensions> extensionsPerRequest)
{
_extensionsPerRequest = extensionsPerRequest;
}
public IExtensions Extensions
{
get { return _extensionsPerRequest(); }
}
}
А затем, в вашей регистрации Autofac:
builder.Register<Func<IExtensions>>(c => RequestContainer.Resolve<IExtensions>());