3.3通过配置指定和Unity的整合

  另外一种方法是在配置源中指定配置的需要,你可以指定下面的一条或者多条:

  •   你可以在Unity配置中指定想要的BlockExtensions
  •   你可以在Unity配置中的type配置节指定如何创建企业库对象,指定类型映射的关系,例如,当使用resolve方法的时候返回一个SqlDatabase,或者是返回指定的注入Database对象。也可以指定生命周期和其他构造策略。

  企业库的配置Scheme和Unity的配置Scheme是独立的。但是你可以将Unity的配置节信息和企业库的配置信息放在同一个文件中,例如Unity配置中的一个或者多个容器,返回类型,映射关系,返回实例,每个容器使用的extensions。关于Unity的具体配置Scheme可以参看Unity的文档。

  3.4使用企业库整合facades

  你可以使用Unity在企业库对象实例中注入自定义的业务对象和类。但是一些企业库提供的静态的facades不能被注入。相反,你可以使用企业库提供的非静态facades,下面显示一个静态的facades和对应的非静态facades。

  Existing Facades            New facade for use with Unity


  ExceptionPolicy              ExceptionManager

  Tracer                    TracerManager

  Cryptographer              CryptographyManager

  3.5将企业库对象注入到自定义业务对象中

你可以使用Unity将企业库对象实例和服务注入到自定义业务对象和组件中,下面的代码显示了一个类如何依赖一个LogWriter实例。


    public class MyNewObjct
    {
        public MyNewObjct (LogWriter myLogger){
            myLogger .Write ("some message");
        }
    }

你可以在容器中载入企业库核心extension和Logging模块的extension,然后初始化自定义的类来完成对LogWriter的注入引用。

  

class MyNewObject
    {
        public MyNewObject(LogWriter logger)
        {
            logger.Write(new Microsoft.Practices.EnterpriseLibrary.Logging. LogEntry("","", 0, 0, System.Diagnostics.TraceEventType.Error, "", null));
        }
    }
    class Class1
    {
        public Class1()
        {
            IUnityContainer container = new UnityContainer();
            container.AddNewExtension<EnterpriseLibraryCoreExtension>();
            container.AddNewExtension<LoggingBlockExtension>();
            MyNewObject obj = container.Resolve<MyNewObject>(); 
        }
    }

  4、通过构造函数直接创建企业库对象

  下面的代码显示了如何通过构造函数创建SqlDatabase对象

  

SqlDatabase sqldb = new SqlDatabase("server=localhost;database=test;uid=as;pwd=as");

转载于:https://www.cnblogs.com/DoNetCShap/archive/2011/12/14/2287814.html

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

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

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

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

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

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

    3.2使用Unity模块创建企业库对象 下面介绍如何使用前面的方法获取企业库对象的实例.代码示例如下  IUnityContainer containter = new UnityContainer( ...

  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 学习之路——第五步、介绍EntLib.Validation模块信息、验证器的实现层级及内置的各种验证器的使用方法——上篇...

    本文是为后面的学习之路做铺垫,简单介绍下企业库中的Validation模块的一些相关知识,包括Validation模块的简介.用途.使用方法.默认提供的多种验证器的介绍等. 一.简介及用途 在实际的项 ...

最新文章

  1. mysql浅拷贝_深入理解浅拷贝和深拷贝
  2. 数据分析方法有哪些_数据分析方法
  3. dubbo-admin管理平台搭建
  4. 基于JAVA+SpringMVC+Mybatis+MYSQL的超市库房管理系统
  5. jQuery验证码发送时间秒递减(刷新存储cookie)
  6. js:防抖动与节流【转载】
  7. 碰到一个摄像头预览画面跳帧的安卓设备
  8. 如何在Word里打出带圈的数字?
  9. python培训学费多少钱-福州Python培训大概多少钱?
  10. 243.STAMP图形界面微生物组分析软件
  11. android ui 扁平化,为何UI集体变风格 扁平化是未来主流吗?
  12. 移动端 php 开源,poscms移动端地址函数
  13. Qt错误:LNK1181:无法打开输入文件“debug\main.obj”
  14. vue php聊天室,实时聊天室:基于Laravel+Pusher+Vue通过事件广播实现
  15. linux电脑主机国产,免费linux主机面板推荐,国产比较优秀Linux免费云主机管理面...
  16. 腾讯技术分享:微信小程序音视频技术背后的故事
  17. 数据库--------代数运算和关系运算
  18. 数电快速入门(五)(编码器的介绍以及通用编码器74LS148和74LS147的介绍)
  19. word模板文件损坏批处理
  20. 什么是对象、什么是面对对象?

热门文章

  1. 同步等待 异步等待_异步/等待和承诺的解释
  2. cocos2d游戏jsc文件格式解密,SpideMonkey大冒险
  3. 1088 Rational Arithmetic
  4. 1073 Scientific Notation
  5. IDEA IntelliJ 如何新建一个不用任何框架的web项目
  6. 安卓环境搭建 SDK emulator directory is missing
  7. html树状结构怎么展开,纯css实现树形结构
  8. 极限编程 (Extreme Programming) - 迭代计划 (Iterative Planning)
  9. 错误:You can't specify target table 'xxx' for update in FROM clause的解决
  10. Pandas Cheat Sheet