如何使用 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。