Используя StructureMap, когда конкретный тип по умолчанию определен в одном реестре, можно ли его переопределить в другом реестре? - PullRequest
0 голосов
/ 10 мая 2010

В проекте, над которым я работаю, у меня есть реестр StructureMap для основного веб-проекта и еще один реестр для моих интеграционных тестов.Во время некоторых тестов я подключаю реестр веб-проекта, чтобы я мог извлечь объекты из контейнера для тестирования.

В одном случае я хочу иметь возможность заменить конкретный тип по умолчанию из веб-реестрас одним в тестовом реестре.

Возможно ли это?

Как вы это делаете?

Ответы [ 3 ]

1 голос
/ 12 мая 2010

Да, вы можете, контейнер будет обслуживать, какой тип был определен в последний раз (согласно моим тестам). Я теоретизирую (но я не уверен), что моя ошибка заключалась в том, что я вызвал механизм IInitializationExpression.Scan после того, как зарегистрировал какой-то тип, и он был перерегистрирован обратно в исходную настройку.

1 голос
/ 10 мая 2010

В аналогичной ситуации я создал NestedContainer (Container.GetNestedContainer()) и переписал там тип. Затем я использую вложенный контейнер для определения типа.

Это сохраняет исходную конфигурацию без изменений, но допускает такое переопределение.

0 голосов
/ 12 мая 2010

Вы пробовали .With() при использовании GetInstance()?

В противном случае вы также используете Container.Inject().

...