Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Множественные одинаковые register #163

Open
VasilyKrainov opened this issue Oct 17, 2022 · 2 comments
Open

Множественные одинаковые register #163

VasilyKrainov opened this issue Oct 17, 2022 · 2 comments

Comments

@VasilyKrainov
Copy link

При наличии нескольких одинаковых register resolve падает с критической ошибкой:

protocol P {
}

class C: P {
}

container.register(C.init).as(P.self).lifetime(.single) // 1
container.register(C.init).as(P.self).lifetime(.single) // 2
let obj: C = container.resolve() // crash

Ситуация довольно типовая, когда выражения 1 и 2 находятся в разных модулях. lifetime ситуацию не меняет.

@ivlevAstef
Copy link
Owner

Здравствуйте. Да такое не разрешено (в любой библиотеке, где-то просто это не пишется как ошибка, а просто игнорирует одну из регистраций), по как по мне понятным
причинам - зачем регистрировать в один контейнер одинаковые зависимости?
А если вы в одном месте решите слегка изменить её (тотже lifetime разный сделать), то какую зависимости нужно брать?

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

Регистрация зависимости должна быть в модуле где эта зависимость создана, а не где планируется использоваться.

@VasilyKrainov
Copy link
Author

мысль понял, спасибо за разъяснение. Попробую реструктурировать приложение, чтоб была одна регистрация

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants