|
Вопрос по DI
|
|||
---|---|---|---|
#18+
Наткнулся на использование контейнера (Unity) в сборке. Контейнер инициализаруется и разрешает зависимости каждый раз по вызову определнного метода. По идее место сему процессу в корне композиции. Привел доводы против такого подхода (контейнер в библиотеке). Производительность. Возможный разный жизненный цыкл объектов в разных апликациях использующих эту сборку. Зависимость сборки на конкретный контейнер. Что еще можно сказать? Какие альтернативы, абстракная фабрика? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2019, 19:19 |
|
Вопрос по DI
|
|||
---|---|---|---|
#18+
Hexag0v, Что спросить хотели? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2019, 21:56 |
|
Вопрос по DI
|
|||
---|---|---|---|
#18+
Hexag0vКакие альтернативы, абстракная фабрика? Интерфейсы. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2019, 09:13 |
|
Вопрос по DI
|
|||
---|---|---|---|
#18+
hVosttHexag0vКакие альтернативы, абстракная фабрика? Интерфейсы. Интерфейсы используются в любом случае. ) Нужно динамически подгружать модули. Этим занимается сборка, но имеет подключенный DI container. Вопрос в том, какие грабли в таком подходе и чем заменить. Service Locator так себе альтернатива. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2019, 09:37 |
|
Вопрос по DI
|
|||
---|---|---|---|
#18+
Hexag0v, Ну обычно делали свою реализацию DI прям в библиотеке, которую можно было подключить к любой другой. Сейчас же дело обстоит проще. Берёте Microsoft.Extensions.DependencyInjection и пользуете в либе. Интерфейс по сути коробочный, проблем вызывать не должно, интегрится с любым современным DI-ем. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2019, 09:46 |
|
Вопрос по DI
|
|||
---|---|---|---|
#18+
hVosttНу обычно делали свою реализацию DI прям в библиотеке, которую можно было подключить к любой другой. Библиотека сама разрешала свои зависимости? hVosttточнее даже Microsoft.Extensions.DependencyInjection.Abstractions А чем отличается от остальных, тем что коробочный? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2019, 10:34 |
|
Вопрос по DI
|
|||
---|---|---|---|
#18+
Hexag0vБиблиотека сама разрешала свои зависимости? Разрешает зависимости контейнер при инъекции в конструктор/свойства. Библиотеки часто предоставляли либо свою реализацию упрощённого контейнера, либо сложным образом вводили поддержку DI. Hexag0vА чем отличается от остальных, тем что коробочный? Тем, что коробочный, да. Т.е. гарантируется наличие интерфейсов в библиотеках платформы, на которые "не стыдно" сослаться и можно использовать существующую реализацию или подключить любую свою. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2019, 13:25 |
|
Вопрос по DI
|
|||
---|---|---|---|
#18+
hVosttБиблиотеки часто предоставляли либо свою реализацию упрощённого контейнера. Но, ведь контейнер должен разрешать зависимости на уровне корня композиции, коим библиотека не является.. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2019, 14:11 |
|
Вопрос по DI
|
|||
---|---|---|---|
#18+
Hexag0vhVosttБиблиотеки часто предоставляли либо свою реализацию упрощённого контейнера. Но, ведь контейнер должен разрешать зависимости на уровне корня композиции, коим библиотека не является.. Не проблема выставить статический фасад, который инкапсулирует разрешение зависимостей. Собственно решение я вам сказал, берёте майкрософтовские абстракции и юзаете их. Клиентам придётся подключать вашу либу через майкрософтовский DI, или через любой другой, реализующий данные абстракции. В отрыве от конкретных задач, трудно о чём-либо ещё говорить. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2019, 21:58 |
|
|
start [/forum/topic.php?fid=20&msg=39854010&tid=1398832]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
154ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 253ms |
total: | 495ms |
0 / 0 |