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