3.2使用Unity模块创建企业库对象

  下面介绍如何使用前面的方法获取企业库对象的实例。代码示例如下

  

 IUnityContainer containter = new UnityContainer();
            containter.AddNewExtension<EnterpriseLibraryCoreExtension>();

  首先创建一个Unity容器,并且添加企业库核心配置扩展。

  默认情况下,这个扩展会从应用的配置文件(app.config和web.config)中读取配置信息。如果你使用自定义的配置源,你可以使用下面的代码创建容器并添加配置扩展。

  

代码

 IUnityContainer uContainer = new UnityContainer();
            IConfigurationSource source = new FileConfigurationSource(@"c:\productapplication.config");
            uContainer.AddExtension(new EnterpriseLibraryCoreExtension(source));

  

  在你添加任何企业库扩展(你可以在任何阶段添加其他不是企业库扩展的扩展)之前, 必须先在容器中添加EnterpriseLibraryCoreExtension。如果在容器中已经存在一个企业库扩展,你可以使用RemoveAllExtensions删除它们,然后以正确的顺序添加进去。

  下一步就是在容器中添加你要使用的模块对应的模块扩展,如果又需要,可以添加多个进去。扩展的命名是以模块的名称+BlockExtension,例如DataAccessBlockExtension,LoggingBlockExtension等。代码示例

  

 uContainer.AddNewExtension<CachingBlockExtension>();

  如果你使用的模块和其他模块有依赖的话,也要添加依赖模块的BlockExtension,当前版本提供的BlockExtension包括:  EnterpriseLibraryBlockExtension、DataAccessBlockExtension、CachingBlockExtension、SecurityBlockExtension、CryptographyBlockExtension、ExceptionHandlingBlockExtension、LoggingBlockExtension。 

  现在你可以使用容器的Resolve创建provider的对象和在企业库标准配置中定义的对象。下面的代码示例了创建CacheMananger实例

  

ICacheManager cacheManager = uContainer.Resolve<ICacheManager>();

  

  当容器被回收之后,容器扩展产生的企业库配置将会丢失。所以,在代码中需要对容器有一个强引用。另外,你用企业库扩展创建,并且用Resolve方法获取的对象都是singleton模式,生命周期是由Unity容器来控制的。当容器被回收Dispose或者超出变量范围之后,他们也会消失。  

  未完待续。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

转载于:https://www.cnblogs.com/virusswb/archive/2010/04/16/1713193.html

微软企业库4.1学习笔记(七)创建对象 续集1相关推荐

  1. 微软企业库4.1学习笔记(三)企业库迁移和并行使用,以及企业库的扩展

    一.迁移和并行使用 通常来说,企业库是建立在.NET 2.0 的基础上,使用后续版本的企业库也不需要改变任何代码.不需要将引用更新到新的程序集,也不需要在配置文件中指明程序集的正确版本. 这个版本4. ...

  2. 微软企业库4.1学习笔记(十)企业库的设计

    在设计整个企业库的过程中,使用了一系列的最佳实践.下面列出一些里面的最佳实践: 在核心库中使用了Common模块 使用了统一的命名约定和统一的版本 在设计的过程中使用单元测试 在所有模块中包含基础结构 ...

  3. 微软企业库4.1学习笔记(八)创建对象 续集2

    3.3通过配置指定和Unity的整合 另外一种方法是在配置源中指定配置的需要,你可以指定下面的一条或者多条: 你可以在Unity配置中指定想要的BlockExtensions 你可以在Unity配置中 ...

  4. 微软企业库4.1学习笔记(六)创建对象

    一.创建应用模块对象 在你的应用中经常会需要创建例如Database或者是CacheManager之类的对象,企业库支持一系列的方法,可以创建应用需要的对象. 你可以使用工厂方法创建这些对象,企业库的 ...

  5. 微软企业库5.0学习笔记(三十三)数据访问模块

    前言 鉴于企业库5.0已经发布正式版,同时有广大读者的要求(臭屁一下,o(∩_∩)o...),后面文章的内容和代码将基于Enterprise Library5.0和Unity2.0来写,感谢大家的一贯 ...

  6. 微软企业库4.1学习笔记(十五)缓存模块3 使用数据库作为后端存储

    配置缓存模块使用数据库作为后端存储 1) 在CacheManager节点上点击右键,选择新建[Database Cache Storage] 2)在配置中自动加入数据访问模块的配置信息 3)点击Dat ...

  7. 微软企业库4.1学习笔记(三十六)日志模块 简介

    日志模块 企业库的日志模块简单的实现了日志功能的常用功能.开发者可以利用模块在下面的位置记录信息: 事件日志 电子邮件 数据库 消息队列 文本文件 WMI的事件查看器 自定义的位置 模块为记录在任何位 ...

  8. 微软企业库5.0学习笔记(四)配置企业库

    http://blog.csdn.net/sfbirp/archive/2010/05/18/5603567.aspx 转载于:https://www.cnblogs.com/Rising/archi ...

  9. [EntLib]微软企业库5.0 学习之路——第七步、Cryptographer加密模块简单分析、自定义加密接口及使用—上篇...

    在完成了后,今天开始介绍企业库中的新模块:Cryptographer(加密模块),这个模块在日常的大多数项目的作用非常重要,例如:网站会员密码.身份证号.网站配置等,通过对信息进行加密可以保证项目数据 ...

最新文章

  1. mysql begin end 批量更新_MySql中4种批量更新的方法
  2. c语言double变量后面几个0,C语言double型变量的初始化到底是是0还是0.0?
  3. leetcode算法题--合并两个有序数组
  4. C++ class类 实现搜索二叉树(BST)
  5. mavonEditor 有序无序列表不能显示数字和小原点的问题
  6. C++ vector
  7. Xcode6中自动布局autolayout和sizeclass的使用
  8. Nginx的安装、启动、停止命令
  9. 基于asp.net面向小商户的轻量级仓储管理系统
  10. 爱普生xp245手动清零_仍在Windows XP上吗? 手动更新或感到烦恼
  11. php jwplayer mp4,jwplayer6 和 php播放视频
  12. 嵌入式开发 | 单片机产品开发流程及学习方法
  13. openstack项目_新项目,安全性以及更多OpenStack新闻
  14. DATE_FORMAT函数用法
  15. WordPress整合ckplayer X3视频播放器插件
  16. MySQL服务开机自启动失败
  17. 完整版:Idea创建Jsp项目
  18. 第10届(深圳)城市艺博会即将于12月13日开幕!
  19. 公司企业简介暨产品推广宣传PPT模板
  20. 是苹果落地导致牛顿发现万有引力吗

热门文章

  1. 可视化编码_Modulz简介:可视编码的下一步
  2. 带哨兵节点的链_【算法导论】10.2不带哨兵节点和带哨兵节点的双向链表
  3. PAT 显示格式错误
  4. 软件测试培训分享:软件测试的职业发展方向有哪些
  5. Java多线程学习处理高并发问题
  6. 5.7-基于Binlog+Position的复制搭建
  7. 如何成功地在亚洲植入敏捷和DevOps
  8. SQL:安装多个实例,修改实例端口号,和IP加端口号连接实例
  9. PHP 读取数据库内容并以二维数组按指定列输出实例
  10. jQuery学习(一)