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
的所有依赖项。
我正在使用 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
的所有依赖项。