DotNetCore、Prism 7、WPF - 未创建服务

DotNetCore, Prism 7, WPF - Service Not Being Created

我正在使用 DotnetCore、WPF 和 Prism 7 制作桌面应用程序。我有一项名为 DbConnectionService 的服务似乎并未创建。此服务未注入任何可通过视图树访问的组件(?)。相反,它会监听 IEventAggregator 并通过它与应用程序的其余部分进行通信。

我发现我无法让它 1. 被创建,以及 2. 如果它被创建,它不会留下来(我假设是 GC)。

下面是我拥有的 "shotgunning" 任何可以创建 DbConnectionService 的代码。都无济于事。

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

非常感谢任何有关创建和坚持使用此服务的帮助。

This service is not injected into any component

这就是它没有创建的原因。要么你注入它并依靠容器的魔力来创建它,要么你自己创建它。

您可以通过 RegisterInstance:

使用容器使对象保持活动状态(即不被垃圾收集)
containerRegistry.RegisterInstance( containerRegistry.GetContainer().Resolve<DbConnectionService>() );

请注意 Resolve 不在 IContainerRegistry 上以防止您这样做,因为您不想混合注册和解析。如果必须,请 110% 确保预先注册 DbConnectionService 的所有依赖项。