• 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会自动配置相关的依赖关系
  • 相关阅读:
    结构体作为函数参数
    自定义子窗口与主窗口通信
    Qt性能问题
    后缀表达式、中缀表达式
    QMap的使用
    自定义QSS
    Qt查找孩子findChild
    ThinkPHP 3.2.3 数据缓存与静态缓存
    Hadoop生态上几个技术的关系与区别:hive、pig、hbase 关系与区别  Pig
    Hadoop生态上几个技术的关系与区别:hive、pig、hbase 关系与区别  Pig
  • 原文地址:https://www.cnblogs.com/HCOONa/p/1373754.html
Copyright © 2020-2023  润新知