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

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