Я пытаюсь вписаться (плохая идея, я знаю, но лучше поздно, чем никогда) IOC и DI в существующее решение.
База кода состоит из примерно 30 проектов, в каждом из которых есть классы, которые практически не видны внешнему миру.Будучи относительно новым для IOC, я пытаюсь использовать передовой опыт при переработке кода, и, кажется, лучше не передавать контейнер IOC и не делать его статичным, поэтому я пытаюсь сделать все с помощью инжектора конструктора.*
Однако, и здесь возникает мой вопрос, я должен сделать очень большое количество классов публичными для всех проектов (т.е. физических файлов .csproj).Я должен сделать это, потому что мой «модуль конфигурации» (я использую Ninject, но это вопрос, не связанный с IOC) должен знать обо всем в любом классе в любом проекте, чтобы иметь возможность разрешать зависимости.
Я что-то упустил?Все мои классы должны быть открытыми, если они основаны на интерфейсе?Могу ли я как-нибудь создать контейнер IOC для каждой из моих границ csproj и сделать это для меня?
Ta