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>

  • 相关阅读:
    调用父类和子类的__init__方法
    对git、github、gitee、gitlab的理解
    网鼎杯2020白虎组部分WriteUp
    比代码更难的事!看完这些思维习惯的人,都成为了架构师
    分布式数字身份DID调研
    如何优雅的实现分布式锁
    __init__构造函数
    付款明细数据
    总账凭证数据
    固定资产
  • 原文地址:https://www.cnblogs.com/zhuawang/p/802339.html
Copyright © 2011-2022 走看看