林子之大.net笔记

本站多数文章由其它网址转载,没啥技术含量的皆为原创。主要目的是对付记性不好,方便查询。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
在web.config的<appSettings>配置节中定义名webDAL键,它的值为所需访问的数据库对应的程序集名称,如你访问数据库为mssql,对应的项目文件为prjName.SqlServerDAL.dll(命名空间为prjName.SqlServerDAL)则webDAL的值为prjName.SqlServerDAL
1   <appSettings>
2       <!--设置数据访问层程序集,sql为prjName.SQLServerDAL,oracle为prjName.OracleDAL -->
3       <add key="WebDAL" value="prjName.SQLServerDAL"/>
4    </appSettings>
5 

当程序运行时由工厂类DalFactory调用ConfingurationManager类的AppSettings方法获取web.config中的键值,采用反射技术动态加载指定类型
 1 using System.Reflection;
 2 using System.Configuration;
 3 
 4 namespace prjName.DALFactory {
 5     /// <summary>
 6     /// 工厂类,用于创建产品类实例
 7     /// </summary>
 8     public sealed class DataAccess {
 9 
10         // 获取使用的程序集的名称
11         private static readonly string path = ConfigurationManager.AppSettings["WebDAL"];     
12         private DataAccess() { }
13 
14         public static prjName.IDAL.IDal CreateDal() {
15             string className = path + ".userDal";
16             return (prjName.IDAL.IDal)Assembly.Load(path).CreateInstance(className);
17         }
18 
19     }
20 }

数据访问层接口类

 1 namespace prjName.IDAL {
 2 
 3     /// <summary>
 4     /// 产品抽象类
 5     /// </summary>
 6     public interface IDal{
 7         
 8         /// <summary>
 9         /// 从数据库中查询用户信息
10         /// </summary>
11         userInfo getUserInfo(string userId,string pwd);
12     }
13 }

访问SqlServer数据库的具体数据访问类
 1 namespace prjName.SQLServerDAL {
 2 
 3     public class userDal : IDal {
 4         /// <summary>
 5         /// 从数据库中获取用户信息
 6         /// </summary>
 7 
 8         public userInfo GetUserInfo(string userId) {
 9 
10             //省略数据库访问代码
11             //   :
12             //   :
13 
14         }
15     }
16 }

访问oracle数据库访问类
 1  namespace prjName.oracleDAL {
 2  
 3      public class userDal : IDal {
 4          /// <summary>
 5          /// 从数据库中获取用户信息
 6          /// </summary>
 7  
 8          public userInfo GetUserInfo(string userId) {
 9  
10              //省略数据库访问代           
11              //   :
12              //   :
13  
14          }
15      }
16  }


posted on 2008-04-24 12:05  林614  阅读(344)  评论(0编辑  收藏  举报