Pergunta

Eu tenho um monte de tipos registrados Autofac e algumas das dependências são bastante profundo. Existe um construído em forma de teste que eu posso resolver todos os tipos registrados? Eu quero falhar rápido na inicialização do aplicativo, e não vários minutos maneira parte mais tarde na.

Este é o que eu estou fazendo atualmente, e parece trabalho, mas eu ainda me pergunto se não há uma maneira melhor.

    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();
        }
    }
Foi útil?

Solução

Autofac não oferece nada para esse efeito - porque Autofac cria componentes em resposta a ResolveInstance, você vai ser confrontado com construtor efeitos colaterais etc

.

O teste de integração é a melhor maneira de resolver esta questão.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top