que tiene la siguiente inscripciónautofac en la liberación v2.4.5.724
builder.Register<Func<Type, IRequestHandler>>(
c => request => (IRequestHandler)c.Resolve(request));
Básicamente estoy tratando de registrar un método de fábrica que resuelve un caso de IRequestHandler de un tipo dado.
Esto funciona bien hasta la versión 2.4.3.700. Pero ahora estoy obteniendo el siguiente error ...
No se puede acceder a un objeto eliminado. Nombre del objeto: 'Esta operación de resolución ya ha finalizado. Cuando registra componentes usando lambdas, el parámetro IComponentContext 'c' a no se puede almacenar la lambda. En su lugar, resuelve IComponentContext nuevamente de 'c', o resuelve un Func > basado en de fábrica para crear los componentes posteriores de. '.
ACTUALIZACIÓN
yo estaba tratando de limitar la exposición de autofac con el resto de los proyectos de la solución. Nick, gracias por la pista, ahora mi registro se parece a esto ...
builder.Register<Func<Type,IRequestHandler>>(c =>
{
var handlers = c.Resolve<IIndex<Type,RequestHandler>>();
return request => handlers[request];
});