Контейнер IoC, проверка на ошибки во время компиляции

У меня есть простой вопрос.

Допустим, у меня есть решение.Net с различными проектами, такими как некоторые библиотеки классов (bll, dal и т. д. )и основной проект, который может быть веб-приложением или приложением wpf, это не имеет значения..

Теперь предположим, что я хочу использовать контейнер IoC (, такой как Windsor, Ninject, Unity и т. д. ), для разрешения таких вещей, как валидаторы, репозитории, общие реализации интерфейса и тому подобное.

Я собрал все вместе. Компилируется и работает нормально. Затем, когда-нибудь, я добавлю новый сервис и в своем коде просто попытаюсь разрешить его через IoC-контейнер. Дело в том, что я забыл зарегистрировать его в конфигурации IoC.

Все компилируется, приложение развертывается и запускается. Все работает нормально, за исключением случаев, когда код страницы запрашивает эту новую службу для контейнера, а контейнер отвечает: «Эй, я ничего не знаю об этой службе».

Вы регистрируете свою ошибку и получаете удобную для пользователя страницу ошибок. Вы пойдете проверить ошибку, увидеть проблему и исправить ее. Довольно стандартный.

Теперь предположим, что мы хотим улучшить процесс и каким-то образом узнать во время компиляции, правильно ли зарегистрированы в коде все службы, которые, как мы ожидаем, будет обрабатывать контейнер IoC.

Как это могло быть достигнуто? Во-первых, модульные тесты исключены из возможных ответов, я ищу другой способ, если он существует.

Мысли?

РЕДАКТИРОВАТЬ -После некоторых ответов и комментариев кажется, что модульные тесты действительно являются единственным способом реализовать эту функцию.

Что я хотел бы знать, так это то, что если модульные тесты были -по какой-либо причине -невозможны, и поэтому IoC нельзя было протестировать во время компиляции,не помешает ли это вам использовать контейнер IoC и выбрать прямое создание экземпляров по всему коду? Я имею в виду, считаете ли вы слишком небезопасным и рискованным использование IoC и позднего связывания и видите, что его преимущества уступают этому «недостатку»?

12
задан Matteo Mosca 27 March 2012 в 20:03
поделиться