Зарегистрируйте MyRepo
только один раз, используя .InstancePerLifetimeScope()
.
Это будет эквивалентно .InstancePerHttpRequest()
при использовании в веб-приложении (я предполагаю, что в этом случае вместо вызова Resolve()
сбез параметра, вы просто берете зависимость, которая вводится.)
Затем вместо разрешения IMyRepo
непосредственно при передаче параметра разрешите Owned<IMyRepo>
:
using (var repoWithParam = ComponentContext.Resolve<Owned<IMyRepo>>(
new NamedParameter("connection", ...))){
// Use repoWithParam.Value here
}
Этобудет иметь дополнительное преимущество, заключающееся в том, что ваш репозиторий, разрешенный с помощью настраиваемого соединения, будет выпущен правильно.
Надеюсь, это поможет, сделав несколько предположений о вашем сценарии, поэтому дайте мне знать, если что-то неясно.