Рамка внедрения зависимостей Microsoft Unity может быть настроена либо через код, либо через файл конфигурации приложений (app.config).
Пример кода:
IUnityContainer container = new UnityContainer()
.RegisterType<IInterface, ConcreteImplementation>();
Пример конфигурации:
<unity>
<containers>
<container>
<types>
<type type="IInterface, MyAssembly"
mapTo="ConcreteImplementation, MyAssembly" />
Каковы преимущества/недостатки каждого подхода? Я могу представить себе очевидное преимущество "Пользователи могут легко настроить ваше приложение", и очевидный недостаток "Пользователи могут легко разорвать ваше приложение", но есть ли что-то менее очевидное?