【WPF】Prism学习(九)

Prism Dependency Injection

在这里插入图片描述

1.Container Locator

1.1. Container Locator的引入

  • Container Locator是在Prism 8.0版本中新引入的一个特性。
  • 它的目的是为了帮助Prism框架摆脱对CommonServiceLocator的依赖,并解决一些必须回退到ServiceLocator模式的内部问题,比如在XAML扩展中。

1.2. ContainerLocator的好处

  • ContainerLocator对于使用Prism框架的开发者来说,尤其是那些开发跨平台应用(如Xamarin.Forms或Uno Platform)的开发者,提供了额外的好处。
  • 在某些情况下,开发者可能需要在初始化PrismApplication之前先初始化容器。一个常见的例子是使用Shiny框架的应用。在这种情况下,开发者可能希望将ServiceCollection添加到Prism容器中,然后将ServiceProvider返回给Shiny。这样,Prism和Shiny可以共同维护一个单一的容器,而不是拥有多个容器。

1.3. 对赞助Dan Siegel的开发者的特别说明

  • 对于那些赞助Dan Siegel的开发者,推荐使用Prism.Magician这个工具来实现上述功能。

2.如何使用Container Locator

2.1. 如何使用ContainerLocator

  • ContainerLocator可以通过一个委托(delegate)来延迟设置容器实例。这意味着,直到调用ContainerLocator.Container之前,容器不会被创建。

2.2. 示例代码

var createContainerExtension = () => new DryIocContainerExtension();
ContainerLocator.SetContainerExtension(createContainerExtension)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值