У меня есть после регистрацииautofac вопрос о регистрации в релизе v2.4.5.724
builder.Register<Func<Type, IRequestHandler>>(
c => request => (IRequestHandler)c.Resolve(request));
В основном я пытаюсь зарегистрировать фабричный метод, который разрешает экземпляр IRequestHandler из данного типа.
Это нормально работает до версии 2.4.3.700. Но теперь я получаю следующую ошибку.
Невозможно получить доступ к расположенному объекту. Имя объекта: «Эта операция разрешения уже завершена. Когда регистрирует компоненты с использованием lambdas, , параметр IComponentContext 'c' равен , лямбда не может быть сохранена. Вместо этого либо снова разрешите IComponentContext из 'c', либо разрешите фабрику <> на основе для создания последующих компонентов . '.
UPDATE
Я пытался ограничить воздействие autofac для всего остального проектов в растворе. Ник, спасибо за подсказку, теперь моя регистрация выглядит так ...
builder.Register<Func<Type,IRequestHandler>>(c =>
{
var handlers = c.Resolve<IIndex<Type,RequestHandler>>();
return request => handlers[request];
});