博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Enterprise Library:Unity的几个注意事项
阅读量:6201 次
发布时间:2019-06-21

本文共 1710 字,大约阅读时间需要 5 分钟。

背景

在.Net平台中,几乎所有的Ioc容器在注册方面都不一致,使用Unity需要注意几个事项,咱们通过实验进行验证一下。

验证的内容:

  1. 集合的获取。
  2. 生命周期管理。

实验

代码

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6  7 using Microsoft.Practices.Unity; 8  9 namespace UnityStudy10 {11     class Program12     {13         static void Main(string[] args)14         {15             UnityContainer container = new UnityContainer();16 17             container.RegisterType
(new PerThreadLifetimeManager());18 container.RegisterType
("A");19 container.RegisterType
("B");20 container.RegisterType
("C");21 container.RegisterType
();22 container.RegisterType
();23 24 Console.WriteLine(container.ResolveAll
().Count());25 //输出:326 27 Console.WriteLine(container.Resolve
().GetHashCode());28 Console.WriteLine(container.Resolve
().GetHashCode());29 30 Console.WriteLine(container.Resolve
().GetHashCode());31 Console.WriteLine(container.Resolve
().GetHashCode());32 33 Console.WriteLine(container.Resolve
().GetHashCode());34 Console.WriteLine(container.Resolve
().GetHashCode());35 //输出:上边六行输出内容一样36 37 Console.WriteLine(container.ResolveAll
().Last().GetHashCode());38 Console.WriteLine(container.ResolveAll
().Last().GetHashCode());39 //输出:输出两行完全不一样40 }41 }42 43 public interface ITest { }44 45 public interface IOther { }46 47 public class Test : ITest, IOther { }48 49 public class TestA : ITest { }50 51 public class TestB : ITest { }52 }

输出

结论

  1. ResolveAll只返回命名注册。
  2. 生命周期和具体类型+注册的名字有关系。

备注

使用Unity获取具体类型是不用注册的,有些Ioc容器要求所有类型都必须先注册才能获取。

 

转载地址:http://hxtca.baihongyu.com/

你可能感兴趣的文章
制作一款微信表情
查看>>
高仿Instagram 页面效果android特效
查看>>
我的友情链接
查看>>
Juniper 基于路由的×××
查看>>
HDU - 2018 - 母牛的故事(dp)
查看>>
基于matlab的fft变换中参数的设置
查看>>
如何查找JSP页面中的错误
查看>>
2016 年总结
查看>>
Python学习开始
查看>>
VC6.0之Debug调试总结
查看>>
Android应用程序消息处理机制(Looper、Handler)分析(4)
查看>>
C++ 类成员的构造和析构顺序
查看>>
将String转化成Stream,将Stream转换成String
查看>>
java路径Java开发中获得非Web项目的当前项目路径
查看>>
Google API设计指南-资源名称
查看>>
最全React技术栈技术资料汇总(收藏)
查看>>
bat文件的一些小技巧
查看>>
【工具使用系列】关于 MATLAB 遗传算法与直接搜索工具箱,你需要知道的事
查看>>
flex 学习笔记 stage
查看>>
Kali-linux Arpspoof工具
查看>>