zoukankan      html  css  js  c++  java
  • 利用反射动态实例化对象(工厂模式)

    需要注意的是程序集名称要与web.config配置文件中定义的名称匹配,程序集名称可通过 右键“项目”→“属性”进行修改

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Reflection;
    using System.Configuration;

    using wzh.Njiagou.IDAL;

    namespace wzh.Njiagou.DALFactory
    { /// <summary>
        /// 数据库访问层工厂
        /// </summary>
        public class DataAccess
        {
            /// <summary>
            /// 驱动数据库任务对象实例
            /// </summary>
            public IGBook DriveGbook()
            {
                // 获取程序集名称
                string assemblyName = ConfigurationManager.AppSettings["AssemblyName"];
                // 获取默认构造器名称
                string className = ConfigurationManager.AppSettings["Constructor"];

                // 建立 IGBook 对象实例
                return (IGBook)Assembly.Load(assemblyName).CreateInstance(className);
            }
        }
    }


    --------------------
    <appSettings>
        <!--
     //
     // Access 2000 数据库任务程序集及驱动类名称
     // 如果希望 TraceLWord7 运行在 Access 2000 数据库平台上,
     // 则打开这个注释信息。
     // 并用注释符号掩释 SQLServer 2000 的标记
     // -->
        <add key="AssemblyName" value="wzh.Njiagou.AccessDAL" />
        <add key="Constructor" value="wzh.Njiagou.AccessDAL.gbook" />


        <!--// SQLServer 2000 数据库任务程序集及驱动类名称 //
      <add key="AssemblyName" value="wzh.Njiagou.SQLServerDAL"/>
      <add key="Constructor" value="wzh.Njiagou.SQLServerDAL.gbook"/>-->
      </appSettings>

  • 相关阅读:
    自我学习而已——javascript——变量,作用域和内存问题
    自我学习而已——javascript——数据类型部分
    面向对象三大特性之封装
    面向对象三大特性之继承与多态
    初识面向对象
    python常用模块(re模块)
    递归函数与算法
    Python之匿名函数
    python之内置函数
    各种推导式
  • 原文地址:https://www.cnblogs.com/zhuawang/p/802339.html
Copyright © 2011-2022 走看看