工厂和反射的使用方法

 

大家好!话不多说看代码!!!

 

首先我们先创建一个工厂类

/// <summary>

/// 工厂类
/// </summary>
public class Gfactory<T>
{
//获取配置文件节点值
static string assemblyName = ConfigurationManager.AppSettings["DBName"].ToString();

public static T CreateFactory(string typeName)
{
//动态加载程序集(从配置文件中获取)
Assembly ass = Assembly.Load(assemblyName);
//创建类的实例
T t = (T)ass.CreateInstance(assemblyName + "." + typeName);
return t;
}

}

 

然后是BLL类的调用方法

public class BaseBLL<T> where T : class,new()
{


// IOrder prod = Factory.DataAccess<IOrder>.CreateFactory("OrderDAL");

// 定义成员,负责接收工厂返回的对象
public Interface1<T> obj;

public BaseBLL(string typeName)
{
//调用工厂创建对象
obj = Factory.Gfactory<Interface1<T>>.CreateFactory(typeName);
}

}

 

///这个是操作的BLL下面的类

public class FeedBLL : BaseBLL<你要操作的Model>
{

/// <summary>
/// 产品业务逻辑层
/// </summary>
static string typeName = "你要使用的DAL名称";

private 接口名称 IFee;

/// <summary>
/// 类的构造函数,通过base访问父类的构造函数,并且传值
/// </summary>
public FeedBLL()
: base(typeName)
{
IFee = (接口名称 )base.obj; // 通过base调用父类的成员
}

}

 

posted @ 2018-07-29 18:42  清风不在已徐来  阅读(116)  评论(0编辑  收藏  举报