【prism】容器使用

16 篇文章 17 订阅 ¥19.90 ¥99.00

获取容器对象

当我们使用了prism框架之后,我们就会拥有一个 对象创建/管理 工厂 —— 容器(IOC)。

回忆一下prism工程的构架过程:

 

 我们当前的App 其实 已经继承了 Prism 给我们提供的APP,所以,我们当前的App对象其实就包含了一个容器对象,所以我们可以从任何地方拿到容器对象:

var a = System.Windows.Application.Current as App;
IContainerProvider c = a.Container;

那,其实还有一种更为简单的方式,获取到容器,就是:

IContainerProvider c = ContainerLocator.Container

prim工程结构梳理

那这个 ICon

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
WPF Prism框架是一个非常强大的框架,可以帮助我们快速开发出高质量的WPF应用程序,其中Unity容器Prism框架中用于依赖注入的核心组件。下面是Unity容器的注册代码示例: ```csharp // 创建Unity容器 IUnityContainer container = new UnityContainer(); // 注册类型 container.RegisterType<IMyInterface, MyConcreteClass>(); // 注册单例 container.RegisterSingleton<IMySingleton, MySingletonClass>(); // 注册实例 IMyInstance myInstanceObject = new MyInstanceClass(); container.RegisterInstance<IMyInstance>(myInstanceObject); // 注册工厂 container.RegisterFactory<IMyFactory>( c => new MyFactoryClass(c.Resolve<IMyDependency>()) ); // 注册命名空间下的所有类型 container.RegisterTypes( AllClasses.FromLoadedAssemblies().Where(type => type.Namespace == "MyNamespace"), WithMappings.FromMatchingInterface, WithName.Default ); // 注册特定条件下的类型 container.RegisterTypes( AllClasses.FromLoadedAssemblies().Where(type => type.Name.EndsWith("Service")), WithMappings.FromMatchingInterface, WithName.Default, WithLifetime.ContainerControlled ); // 注册自定义实例化方式 container.RegisterType<IMyClass>( new InjectionFactory(c => { string someParameter = "some value"; return new MyClass(someParameter, c.Resolve<IMyDependency>()); }) ); ``` 以上示例代码展示了Unity容器的基本用法,包括注册类型、单例、实例、工厂、命名空间和特定条件下的类型,并且还演示了如何使用自定义实例化方式来创建对象。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

code bean

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值