如何使用 Unity 在 Prism 中向同一实例注册服务



我有一个棱镜模块(实现IModule(。

RegisterTypes(IContainerRegistry containerRegistry)中,我需要说类A的一个实例是请求接口IAIAprime时返回的实例:

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。

最新更新