Вы не можете быть на 100% уверены, так как Виндзор - это динамичный организм, и не все может быть подвергнуто статическому анализу. Все обработчики могут находиться в состоянии WaitingDependency
, но ваше приложение может работать на 100%, поскольку во время разрешения зависимости будут предоставлены DynamicParameters
, ISubDependencyResolver
с или ILazyComponentLoader
с.
Были планы включить эту функцию, которую вы упомянули, в Виндзор, но с учетом вышеупомянутых ограничений она редко будет предоставлять какое-либо значение.
Я бы предложил иметь хорошие, надежные проверяемые соглашения, которые решают, что входит в контейнер, а что нет, и хорошие модульные тесты, которые проверяют контейнер путем разрешения компонентов.
Если вы не против получить ложные негативы, вы можете сделать следующее:
var allHandlers = container.Kernel.GetAssignableHandlers(typeof(object));
, а затем перебрать их и проверить, все ли они Valid
, но я бы предпочел специальный тест для этого. Взгляните на этот пост, например .
Настройка приложения не должна быть методом проб и ошибок, и не должна быть. Это вопрос хороших соглашений и их соблюдения. У меня есть два сообщения об этом, которые вы можете найти полезными: