利用反射动态实例化对象(工厂模式)
2007-07-01 21:50
399 查看
需要注意的是程序集名称要与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>
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>
相关文章推荐
- 在工厂模式里面利用反射机制动态调用对象方法
- 自己在项目中的学习总结:利用工厂模式+反射机制+缓存机制,实现动态创建不同的数据层对象接口
- Java 反射实例化对象(修改工厂模式)
- C# 静态工厂利用反射机制动态构建配置文件中 所配置的类的对象
- 利用工厂模式封装对象变化
- 利用反射机制实现工厂设计模式的高扩展性
- C#回顾 - 8.利用反射动态创建对象
- JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模)
- 【转】C# 利用反射动态创建对象
- 抽象工厂模式:简单工厂模式、工厂方法模式对比;在工厂方法模式中使用反射创建对象实例
- javascript面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
- JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
- C# 利用反射动态创建对象
- 利用反射实现工厂模式
- JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
- [Java]利用反射机制动态加载并创建包含参数的对象
- Java基础之反射及动态代理,反射实现工厂模式
- javaweb项目中利用反射实现工厂模式
- c# 利用反射动态给实体类对象赋值
- 利用反射获取实例化后的对象的属性及其属性值