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();
        }
    }
È stato utile?

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
scroll top