Autofac тест все зарегистрированные типы могут быть решены - PullRequest
18 голосов
/ 30 июля 2009

У меня есть несколько типов, зарегистрированных в Autofac, и некоторые из них довольно глубоки. Есть ли встроенный способ проверки того, что я могу разрешить все зарегистрированные типы? Я хочу быстро потерпеть неудачу при запуске приложения, а не через несколько минут частично.

Это то, чем я сейчас занимаюсь, и похоже, что это работает, но я все еще удивляюсь, если нет лучшего способа.

    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();
        }
    }

1 Ответ

6 голосов
/ 02 августа 2009

Autofac ничего не предлагает на этот счет - поскольку Autofac создает компоненты в ответ на ResolveInstance, вы столкнетесь с побочными эффектами конструктора и т. Д.

Интеграционное тестирование - лучший способ решить эту проблему.

...