DotNetCore, Prism 7, WPF - Сервис не создается - PullRequest
0 голосов
/ 10 апреля 2020

Я использую DotnetCore, WPF и Prism 7 для создания настольного приложения. У меня есть одна служба под названием DbConnectionService, которая, кажется, не создана. Этот сервис не внедряется ни в один компонент, доступный через дерево представлений (?). Вместо этого он слушает IEventAggregator и через него обменивается данными с остальной частью приложения.

Я обнаружил, что не могу заставить его создать 1. и 2. если он создан, он не держится (G C, я полагаю).

Ниже приведен код, который я «выстрелил» во все, что создаст DbConnectionService. Все безрезультатно.

containerRegistry.RegisterInstance(typeof(DbConnectionService), "DbConnectionService");
containerRegistry.Register<IDbConnectionService, DbConnectionService>();
containerRegistry.RegisterSingleton(typeof(DbConnectionService));
containerRegistry.GetContainer().RegisterSingleton<DbConnectionService>();

Любая помощь в создании и обслуживании этой услуги очень ценится.

1 Ответ

1 голос
/ 10 апреля 2020

Этот сервис не внедряется ни в один компонент

Вот почему он не создан. Либо вы впрыскиваете его и полагаетесь на магию контейнера c, чтобы создать его, либо вы создаете его самостоятельно.

Вы можете использовать контейнер, чтобы поддерживать объект в живых (т.е. не собирать мусор) до RegisterInstance:

containerRegistry.RegisterInstance( containerRegistry.GetContainer().Resolve<DbConnectionService>() );

Обратите внимание, что Resolve не включен на IContainerRegistry, чтобы помешать вам сделать это, потому что вы не хотите смешивать регистрацию и разрешение. Если вам нужно, убедитесь на 110%, что все зависимости DbConnectionService зарегистрированы заранее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...