Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Вопрос по DI / 10 сообщений из 10, страница 1 из 1
26.08.2019, 19:19
    #39853877
Hexag0v
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по DI
Наткнулся на использование контейнера (Unity) в сборке.

Контейнер инициализаруется и разрешает зависимости каждый раз по вызову определнного метода.
По идее место сему процессу в корне композиции.

Привел доводы против такого подхода (контейнер в библиотеке).

Производительность.
Возможный разный жизненный цыкл объектов в разных апликациях использующих эту сборку.
Зависимость сборки на конкретный контейнер.

Что еще можно сказать?
Какие альтернативы, абстракная фабрика?
...
Рейтинг: 0 / 0
26.08.2019, 21:56
    #39853921
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по DI
Hexag0v,

Что спросить хотели?
...
Рейтинг: 0 / 0
27.08.2019, 09:13
    #39854010
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по DI
Hexag0vКакие альтернативы, абстракная фабрика?

Интерфейсы.
...
Рейтинг: 0 / 0
27.08.2019, 09:37
    #39854021
Hexag0v
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по DI
hVosttHexag0vКакие альтернативы, абстракная фабрика?

Интерфейсы.

Интерфейсы используются в любом случае. )
Нужно динамически подгружать модули.
Этим занимается сборка, но имеет подключенный DI container.

Вопрос в том, какие грабли в таком подходе и чем заменить.

Service Locator так себе альтернатива.
...
Рейтинг: 0 / 0
27.08.2019, 09:46
    #39854027
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по DI
Hexag0v,

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

Сейчас же дело обстоит проще. Берёте Microsoft.Extensions.DependencyInjection и пользуете в либе. Интерфейс по сути коробочный, проблем вызывать не должно, интегрится с любым современным DI-ем.
...
Рейтинг: 0 / 0
27.08.2019, 09:47
    #39854029
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по DI
...
Рейтинг: 0 / 0
27.08.2019, 10:34
    #39854057
Hexag0v
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по DI
hVosttНу обычно делали свою реализацию DI прям в библиотеке, которую можно было подключить к любой другой.

Библиотека сама разрешала свои зависимости?

hVosttточнее даже Microsoft.Extensions.DependencyInjection.Abstractions

А чем отличается от остальных, тем что коробочный?
...
Рейтинг: 0 / 0
27.08.2019, 13:25
    #39854167
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по DI
Hexag0vБиблиотека сама разрешала свои зависимости?

Разрешает зависимости контейнер при инъекции в конструктор/свойства. Библиотеки часто предоставляли либо свою реализацию упрощённого контейнера, либо сложным образом вводили поддержку DI.


Hexag0vА чем отличается от остальных, тем что коробочный?

Тем, что коробочный, да. Т.е. гарантируется наличие интерфейсов в библиотеках платформы, на которые "не стыдно" сослаться и можно использовать существующую реализацию или подключить любую свою.
...
Рейтинг: 0 / 0
27.08.2019, 14:11
    #39854197
Hexag0v
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по DI
hVosttБиблиотеки часто предоставляли либо свою реализацию упрощённого контейнера.
Но, ведь контейнер должен разрешать зависимости на уровне корня композиции, коим библиотека не является..
...
Рейтинг: 0 / 0
27.08.2019, 21:58
    #39854409
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по DI
Hexag0vhVosttБиблиотеки часто предоставляли либо свою реализацию упрощённого контейнера.
Но, ведь контейнер должен разрешать зависимости на уровне корня композиции, коим библиотека не является..

Не проблема выставить статический фасад, который инкапсулирует разрешение зависимостей.

Собственно решение я вам сказал, берёте майкрософтовские абстракции и юзаете их. Клиентам придётся подключать вашу либу через майкрософтовский DI, или через любой другой, реализующий данные абстракции.

В отрыве от конкретных задач, трудно о чём-либо ещё говорить.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Вопрос по DI / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]