zoukankan      html  css  js  c++  java
  • EntLib 4.1 第2.5章 DAAB+Unity (数据访问程序块)

    下面说一下DAAB和Unity联合使用的方面
    解说还是围绕着QuickStart展开的

    在第二章的基础上添加引用
    Microsoft.Practices.Unity
    Microsoft.Practices.Unity.Configuration
    System.configuration

    然后在配置文件中添加以下节
     1  <unity>
     2    <containers>
     3      <container name="dataContainer">
     4        <extensions>
     5          <add type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.Unity.EnterpriseLibraryCoreExtension, Microsoft.Practices.EnterpriseLibrary.Common" />
     6          <add type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.Unity.DataAccessBlockExtension, Microsoft.Practices.EnterpriseLibrary.Data" />
     7        </extensions>
     8      </container>
     9    </containers>
    10  </unity>

    并且在configSections中注册该节点:
    <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration" />

    在DAO中标记依赖注入
     1public class SalesData
     2    {
     3        private Database db;
     4
     5        [InjectionConstructor]
     6        public SalesData([Dependency]Database db)
     7        {
     8            this.db = db;
     9        }

    10
    11//以下代码省略

    [InjectionConstructor]标签用来标记注入哪个构造函数。
    只有一个构造函数的话,该标签可以省略。
    有两个构造函数的时候,会采用有参数的构造函数。
    有该标签的时候,采用被标记的构造函数。

    [Dependency]用来标记依赖。


    下面是Main的代码
     1private static void Main()
     2{
     3    IUnityContainer container = new UnityContainer();
     4
     5    //从配置文件中读取unity节点
     6    UnityConfigurationSection section = (UnityConfigurationSection)ConfigurationManager.GetSection("unity");
     7    //用该节点的信息配置container
     8    section.Containers["dataContainer"].Configure(container);
     9
    10    //用容器配置创建QuickStartForm
    11    AppForm = container.Resolve<QuickStartForm>();
    12
    13    Application.Run(AppForm);
    14}

    Unity会自动配置相关的依赖关系
  • 相关阅读:
    抽奖软件分享
    常用网页元素命名规范参考
    基于.NET平台常用的框架整理
    【Jquery Mobile教程】【问题】- 在页面切换时会闪烁
    SSO单点登录三种情况的实现方式详解
    outlook 2013撤消已经发送的邮件
    【TFS 2010配置】总是提示:Error [ System Checks ] TF255466
    iOS9.3描述文件怎么安装
    精进-12周:成为很历害的人 第一周:Axure学习日志
    精进-12周:成为很历害的人 第一周:XMIND学习日志
  • 原文地址:https://www.cnblogs.com/HCOONa/p/1373754.html
Copyright © 2011-2022 走看看