Ho la seguente registrazioneautofac problema di registrazione nel rilascio v2.4.5.724
builder.Register<Func<Type, IRequestHandler>>(
c => request => (IRequestHandler)c.Resolve(request));
Fondamentalmente sto cercando di registrare un metodo factory che risolve un caso di IRequestHandler da un determinato tipo.
Questo funziona fino alla versione 2.4.3.700. Ma ora sto ottenendo il seguente errore ..
Impossibile accedere a un oggetto disposto. Nome oggetto: 'Questa operazione di risoluzione è già terminata. Quando si registra utilizzando lambdas, il parametro 'c' IComponentContext su , il lambda non può essere memorizzato. Invece, risolve IComponentContext di nuovo da "c", o risolve un Func <> basato su factory per creare i successivi componenti da. '.
UPDATE
stavo cercando di limitare l'esposizione di autofac per il resto dei progetti nella soluzione. Nick, grazie per il suggerimento, ora la mia registrazione assomiglia a questo ...
builder.Register<Func<Type,IRequestHandler>>(c =>
{
var handlers = c.Resolve<IIndex<Type,RequestHandler>>();
return request => handlers[request];
});