代码之家  ›  专栏  ›  技术社区  ›  Haukinger

带两个接口的Prism 7单例

  •  0
  • Haukinger  · 技术社区  · 7 年前

    在unity背景下,我首先注册单例(没有接口),然后注册两个接口(不是单例):

    containerRegistry.RegisterSingleton<FactoryController>();
    containerRegistry.Register<IFactoryController, FactoryController>();
    containerRegistry.Register<IFactoryToken, FactoryController>();
    

    1 回复  |  直到 7 年前
        1
  •  2
  •   Dan Siegel    7 年前

    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>()));