Autofac teste tipos todos registrados podem ser resolvidos
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();
}
}
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