powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / дефолтный контейнер и стороний (core net)
8 сообщений из 8, страница 1 из 1
дефолтный контейнер и стороний (core net)
    #39619302
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос может прозвучит глупо, но я не нашел информации.
что будет если часть сервис зарегистрировано в дефолтном, а основная в стороннем? Раньше я думал что зависимости переходили и не обращался внимания
к примеру
Код: c#
1.
services.AddDbContext<Context>(options => options.UseSqlServer(Configuration.GetConnectionString("**")));


я получал доступ к контексту хотя я использую DryIoc.

встала задача сделать инжектирование в джобы кварца. не вопрос, почитал, переопределил IJobFactory и зарегистрировал их через IServiceProvider. но в итоге я не получал зависимости в конструкторе джоба что бы зарегистрованы в DryIoc. Естественно если я регал их через IServiceCollection, то все получал.

конечно я могу определить IJobFactory для контейнера DryIoc и вопрос вроде решить, еще не проверил.

Но вопрос основной в том как AddDbContext регистрирует контекст(или регистрация логера от мс, он тоже доступен везде) так что DryIoc знает про него. или может я не понял чего.

п.с. я просто надеялся что я зарегистрирую в IServiceCollection и оно просто перейдет в DryIoc при замене локатора, чтоб не иметь реализацию IJobFactory под каждый Ioc контейнер.
...
Рейтинг: 0 / 0
дефолтный контейнер и стороний (core net)
    #39619308
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRu,

я не знаю, как там устроен DryIoc, но по идее, его интеграция должна делать следующее:

1. создать контейнер DryIoc
2. вытащить все зависимости, зарегистрированные ранее, через IServiceCollection (populate services)
3. заменить контейнер на DryIoc

всё, что ты зарегаешь в IServiceCollection потом, не возымеет никакого действия.

и да, коль уж ты используешь свой контейнер, ты должен регать всё в нём, а не в IServiceCollection, в Autofac для этого используются модули. просто в него переносится то, что регается коробочными MS-решениями, а далее плывёшь уже на другом корабле, не может использовать два контейнера одновременно, то что у тебя работает services.AddDbContext означает, что ты это выполняешь раньше, чем DryIoc забирает зависимости под своё крыло.
...
Рейтинг: 0 / 0
дефолтный контейнер и стороний (core net)
    #39619312
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRu,

https://bitbucket.org/dadhi/dryioc/src/e788ffce78b727b35fda5355a2297d40f0e7731b/NetCore/src/DryIoc.Microsoft.DependencyInjection/DryIocAdapter.cs?at=default&fileviewer=file-view-default

собственно да, о чём я и говорил
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
            adapter.RegisterMany<DryIocServiceProvider>(
                setup: Setup.With(useParentReuse: true),
                made: Parameters.Of.Type(_ => throwIfUnresolved));

            adapter.Register<IServiceScopeFactory, DryIocServiceScopeFactory>(
                Reuse.ScopedOrSingleton);

            // Registers service collection
            if (descriptors != null)
                adapter.Populate(descriptors, registerDescriptor);

            return adapter;
...
Рейтинг: 0 / 0
дефолтный контейнер и стороний (core net)
    #39619331
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt просто в него переносится то, что регается коробочными MS-решениями,
да на это я и надеялся.

да я понимаю про регистрацию раньше, поэтому и закинул выше чем создание контейнера DryIoc с заменой. но не получил в конструкторе объектов. Вообще мое предположение было верно что DryIoc переносит ранее зареганные зависимости и я где то ошибся просто. Спасибо
...
Рейтинг: 0 / 0
дефолтный контейнер и стороний (core net)
    #39619646
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

проблема была во времени жизни. я напортачил. но спасибо тебе что мне разжевал то что я думал как работает оказалось именно так.
...
Рейтинг: 0 / 0
дефолтный контейнер и стороний (core net)
    #39619676
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRuпроблема была во времени жизни

Scoped?
...
Рейтинг: 0 / 0
дефолтный контейнер и стороний (core net)
    #39620365
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostthandmadeFromRuпроблема была во времени жизни

Scoped?
ну по сути да только специфичный, inWebRequest. а я регистрировал сервисы внутри кварца. вообщем пересмотрел идею reuse.
...
Рейтинг: 0 / 0
дефолтный контейнер и стороний (core net)
    #39620368
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRuну по сути да только специфичный, inWebRequest. а я регистрировал сервисы внутри кварца. вообщем пересмотрел идею reuse.

А.. в Autofac когда-то добавили InstancePerRequest(), потом поняли, что натупили и рекомендовали использовать InstancePerLifetimeScope() как раз-таки по причинам, что скоуп не обязательно может быть ограничен запросом :)
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / дефолтный контейнер и стороний (core net)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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