日期:2014-05-18 浏览次数:20497 次
namespace Taeheesoft.DALFactory 
{ 
    public sealed class DataAccess 
    { 
        private static readonly string assemblyPath = ConfigurationManager.AppSettings["AssemblyDAL"]; 
        //add key="AssemblyDAL" value="PetShop4.SQLServerDAL"/>//数据访问层(DAL)的程序集名称
        
        private static readonly string namespacePath = ConfigurationManager.AppSettings["NamespaceDAL"]; 
        // <add key="NamespaceDAL" value="Taeheesoft.SQLServerDAL"/>>//数据访问层(DAL)的命名空间
        
        private DataAccess() { } 
        /// <summary> 
        /// Create a interface 
        /// </summary> 
        /// <remarks> 
        /// 创建Demo 的数据层接口 
        /// </remarks> 
        /// <returns> </returns> 
        public static IDemo CreateDemo() 
        { 
            string className = namespacePath + ".Demo"; //命名空间+类名称=完整的类名称 例如:System+Int32=System.Int32
            return (IDemo)Assembly.Load(assemblyPath).CreateInstance(className);
              //Assembly.Load加载程序集
              //CreateInstance动态创建类(className)
        } 
    } 
}
//这段代码是根据程序集,命名空间和类名称动态的创建一个类,利用了设计模式中的简单工厂模式。
//IDemo是接口