我正在查看Prism 7中引入的容器抽象,并且不确定如何用两个接口注册一个单例。
基于统一背景,我首先注册单例(没有接口),然后注册两个接口(不是单例):
containerRegistry.RegisterSingleton<FactoryController>();
containerRegistry.Register<IFactoryController, FactoryController>();
containerRegistry.Register<IFactoryToken, FactoryController>();这很好,因为我的容器是统一的。但它也适用于其他容器吗?
是否有关于棱镜7提供的容器抽象行为的任何规范?
发布于 2018-10-08 19:08:43
Prism 7容器抽象是有意简单的,目的是处理大多数(但不是所有)注册需求。对于更复杂的场景,需要使用扩展方法GetContainer()获取容器,如下所示:
containerRegistry.GetContainer().RegisterType<FactoryController>(new ContainerControlledLifetimeManager());
containerRegistry.GetContainer().RegisterType<IFactoryController>(new InjectionFactory(c => c.Resolve<FactoryController>()));
containerRegistry.GetContainer().RegisterType<IFactoryToken>(new InjectionFactory(c => c.Resolve<FactoryController>()));https://stackoverflow.com/questions/52688215
复制相似问题