Вы не регистрируете 3 разных реализации IParser
.Вы создаете одно отображение по умолчанию IParser
-> SuperParser
, а затем перезаписываете его с помощью IParser
-> DefaultParser
, а затем перезаписываете его снова с помощью IParser
-> BasicParser
.
Если выЧтобы зарегистрировать все три из них, вы должны предоставить именованные регистрации, такие как
container.RegisterType<IParser, SuperParser>("Super");
container.RegisterType<IParser, DefaultParser>("Default");
container.RegisterType<IParser, BasicParser>("Basic");
Кроме того, ResolveAll
не включает сопоставление по умолчанию (без имени).Он разрешает только те сопоставления IParser
, которые были зарегистрированы как именованные сопоставления.