Test autofac tutti i tipi registrati possono essere risolti
Domanda
Ho un sacco di tipi registrati con Autofac e alcune delle dipendenze sono piuttosto profonde. Esiste un modo integrato per testare che posso risolvere tutti i tipi registrati? Voglio fallire rapidamente all'avvio dell'applicazione e non alcuni minuti dopo a metà strada.
Questo è quello che sto facendo attualmente, e sembra funzionare, ma mi chiedo ancora se non esiste un modo migliore.
public void VerifyAllRegistrations()
{
foreach (IComponentRegistration registration in _container.ComponentRegistrations)
{
bool isNewInstance;
registration.ResolveInstance(_container, new Parameter[0], new Disposer(), out isNewInstance);
}
}
private class Disposer : IDisposer
{
public void Dispose()
{
// no-op
}
public void AddInstanceForDisposal(IDisposable instance)
{
instance.Dispose();
}
}
Soluzione
Autofac non offre nulla in tal senso - poiché Autofac crea componenti in risposta a ResolveInstance, dovrai affrontare effetti collaterali del costruttore ecc.
Il test di integrazione è il modo migliore per risolvere questo problema.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow