1.反射

 

web.Config (配置数据程序集和)

   // <!--数据层:DALMSSQL.DBSessionFactory类,DALMSSQL.dll数据程序集中-->
         <add key="DBSessionFatory" value="DALMSSQL.DBSessionFactory"/>
   ///<!--程序集DALMSSQL.dll中有:DBSessionFactory.cs类-->
         <add key="DBSessionFatoryDLL" value="D:\1.vs2012新练习小小项目\MVCOA20170223\MVCOA\bin\DALMSSQL.dll"/>

代码如下:

1.版本

private IDAL.IDBSession iDBSession;
       #region 数据仓储 属性 +IDBSession iDBSession; 
      
       /// <summary>
       /// 数据仓储 属性
       /// </summary>
       public IDAL.IDBSession DBSession
       {
           get{
               if (iDBSession == null) {
                   //A.======反射(创建数据)
                   //1.读取配置文件(中的类:DALMSSQL.DBSessionFactory)
                   String strFactoryDLL = Common.ConfigurationHelper.AppSetting("DBSessionFatoryDLL");//程序集
                   String strFactoryType = Common.ConfigurationHelper.AppSetting("DBSessionFatory");//程序集类名
                   ///2.1通过反射创建DBSessionFactory工厂对象
                 Assembly dalDLL=  Assembly.LoadFile(strFactoryDLL);//1.数据程序集
                 Type typeDBSessionFatory=dalDLL.GetType(strFactoryType);//2.strFactoryType类名,
                 //3.根据type创建实例:Activator.CreateInstance(typeDBSessionFatory)
                 // 创建工厂对象:IDAL.IDBSessionFactory Sessionfactory
                   IDAL.IDBSessionFactory Sessionfactory=Activator.CreateInstance(typeDBSessionFatory)as IDAL.IDBSessionFactory;
           //3.通过工厂创建DBSession对象
                   iDBSession = Sessionfactory.GetDBSession();
                   //A.======反射获取数据结束
             }
               return iDBSession;
           }
       }
       #endregion

 

posted @ 2017-03-09 10:10  狼牙者.net  阅读(129)  评论(0)    收藏  举报