Автоматическая регистрация в контейнере по атрибутам — теперь с IServiceCollection и тестами

Я сделал простейшую утилиту для регистрации в контейнере по атрибутам на интерфейсе\реализации. Добавил тесты а так же поддержку IServiceCollection.
Я сделал простейшую утилиту для регистрации в контейнере по атрибутам на интерфейсе\реализации. Добавил тесты а так же поддержку IServiceCollection.
В прошлой статье мы сгенерировали Enpoint-ы WebApi по описанию на основе классов, свойств и атрибутов.
(первая часть, вторая часть, третья часть, четвертая часть)
В этой статье мы добавим генерацию абстракций EventHandler-ов, работающих с шиной, саму шину, реализацию EventHandler-ов для MassTransit, узнаем во сколько раз больше мы генерируем, чем пишем (на этот раз без ошибки).
Я сделал простейшую утилиту для регистрации реализаций в контейнере.
Теперь можно легко и быстро тянуть все из сборок одной командой.
Недавно проходил очередное собеседование, попросили написать CRUD для данных из 5 таблиц с максимальной глубиной связей 3 (таблица 1->таблица 2->таблица 3).
В принципе, это по количеству работы аналог какого-нибудь форума (users, files, themes, groups, messages). Сделайте нам пожалуйста phphbb :). И слышать "Ой, а ваше решение плохо поддерживается" в ответ на труд более двух дней не хотелось.
Встроенный в VisualStudio генератор CRUD по EntityFramework тоже оказался почти бессилен.
Плюс, довольно известный генератор CRUD EasyData(ссылка) не поддерживает валидацию данных через атрибуты (по крайней мере на стороне сервера).
Небольшой рассказ о том, как я делал арифметические ядра и сделал лучший селектор (декодер адресов).