Unity(2)生命周期

1.初始化容器,注册

1.1使用XML格式的配置文件,具体参考

http://msdn.microsoft.com/en-us/library/dd203230.aspx

1.2使用UnityContainerll类的RegisterType方法和RegisterInstance方法

1.3 使用容器配置API,踢狗自定义配置

IUnityContainer myContainer = new UnityContainer();

IUnityContainer childCtr = myContainer.CreateChildContainer();

//默认映射

myContainer.RegisterType<IMyService, CustomerService>();

//命名映射

myContainer.RegisterType<IMyService, CustomerService>("Customers");

2.实例生命周期

默认通过容器返回的对象只有一个短暂的生命周期,容器不会存储其引用,每回通过Resolve返回的都是一个新的实例。

通过生命周期管理器管理其生命周期

//类注册为单例

myContainer.RegisterType<IMyService, CustomerService>(new ContainerControlledLifetimeManager());

 

myContainer.RegisterType<CustomerService>(new ContainerControlledLifetimeManager());

//已存在对象注册为单例

myContainer.RegisterInstance<IMyService>(myEmailService);

注意:注册已存在的对象,不会发生注入,可以通过BuildUp方法强制接口注入和属性注入

使用ExternallyControlledLifetimeManager进行扩展,注册时出入ExternallyControlledLifetimeManager,容器只会保留一个弱引用,可以通过代码去维持对象或者释放对象

注册泛型对象

三种生命周期管理器

1.ContainerControlledLifetimeManager ,RegisterInstance方法的默认管理器

2.ExternallyControlledLifetimeManager

3.PerThreadLifetimeManager

容器层次

容器注销时会注销其所包含的所有的实例

3、Fluent Interface 方法链编程

AddExtension()

Configure

转载于:https://www.cnblogs.com/believe3301/archive/2009/05/26/1489420.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值