проблема с регистрацией autofac в версии v2.4.5.724

У меня есть следующая регистрация

builder.Register<Func<Type, IRequestHandler>>(
          c => request => (IRequestHandler)c.Resolve(request));

В основном я пытаюсь зарегистрировать фабричный метод, который разрешает экземпляр IRequestHandler из заданного типа.

Это работает нормально до версии 2.4.3.700. Но теперь я получаю следующую ошибку ... Имя объекта: 'Эта операция разрешения уже завершена. когда регистрация компонентов с использованием лямбда-выражений, параметр IComponentContext 'c' для лямбда не может быть сохранена. Вместо, либо снова разрешите IComponentContext из 'c' или разрешить Func <> на основе фабрика по созданию последующих компоненты из. '.

ОБНОВЛЕНИЕ

Я пытался ограничить доступ autofac к остальным проектам в решении. Ник, спасибо за подсказку, теперь моя регистрация выглядит так ...

 builder.Register<Func<Type,IRequestHandler>>(c =>  
         { 
           var handlers = c.Resolve<IIndex<Type,RequestHandler>>(); 
           return  request => handlers[request];  
         });
13
задан chandmk 22 March 2011 в 15:16
поделиться