Для динамически загружаемых библиотек DLL вы можете взглянуть на MEF .
Unity для разделения зависимостей между классами, чтобы упростить написание тестируемого кода для повторного использования.*
Это контейнерная библиотека Inversion of Control (IoC), которая упрощает Внедрение зависимостей .На переполнении стека имеется множество примеров .Обратите внимание, что вы можете настроить Unity в коде (мои предпочтения) или в файле конфигурации.