Autofac test todos los tipos registrados pueden ser resueltos
Pregunta
Tengo un montón de tipos registrados con Autofac y algunas de las dependencias son bastante profundas. ¿Hay una forma integrada de probar que puedo resolver todos los tipos registrados? Quiero fallar rápidamente en el inicio de la aplicación, y no varios minutos más tarde.
Esto es lo que estoy haciendo actualmente, y parece funcionar, pero todavía me pregunto si no hay una mejor manera.
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();
}
}
Solución
Autofac no ofrece nada al respecto, ya que Autofac crea componentes en respuesta a ResolveInstance, se enfrentará a efectos secundarios de los constructores, etc.
Las pruebas de integración son la mejor manera de abordar esto.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow