如何使用 Unity 在 Prism 中使用同一实例注册服务?
How to register service with the same instance in Prism with Unity?
我有一个 Prism 模块(实现 IModule
)。
在 RegisterTypes(IContainerRegistry containerRegistry)
中,我需要说 class A
的一个实例是请求接口 IA
时 return 的实例和 IAprime
:
public void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.RegisterSingleton<IA, A>();
containerRegistry.RegisterSingleton<IAprime, A>();
}
但如果我这样做,我最终会得到两个不同的单例。我该如何进行?
我不能使用 RegisterInstance
,因为它需要我构建 A,它具有一定的依赖性。
感谢您的帮助!
你可以这样做。
public void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.RegisterSingleton<A>();
containerRegistry.Register<IA, A>();
containerRegistry.Register<IAprime, A>();
}
当然,如果你需要一个A实例,A必须注册为IA,IAprime。
我有一个 Prism 模块(实现 IModule
)。
在 RegisterTypes(IContainerRegistry containerRegistry)
中,我需要说 class A
的一个实例是请求接口 IA
时 return 的实例和 IAprime
:
public void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.RegisterSingleton<IA, A>();
containerRegistry.RegisterSingleton<IAprime, A>();
}
但如果我这样做,我最终会得到两个不同的单例。我该如何进行?
我不能使用 RegisterInstance
,因为它需要我构建 A,它具有一定的依赖性。
感谢您的帮助!
你可以这样做。
public void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.RegisterSingleton<A>();
containerRegistry.Register<IA, A>();
containerRegistry.Register<IAprime, A>();
}
当然,如果你需要一个A实例,A必须注册为IA,IAprime。