日期:2014-05-18  浏览次数:20405 次

能不能详细的解释下这段代码的意思
namespace Taeheesoft.DALFactory
{
  public sealed class DataAccess
  {
  private static readonly string assemblyPath = ConfigurationManager.AppSettings["AssemblyDAL"];
  //add key="AssemblyDAL" value="PetShop4.SQLServerDAL"/>在这里AssemblyDAL是什么意思
   
  private static readonly string namespacePath = ConfigurationManager.AppSettings["NamespaceDAL"];
  //<add key="NamespaceDAL" value="Taeheesoft.SQLServerDAL"/>在这里NamespaceDAL是什么意思

   
  private DataAccess() { }

  /// <summary>
  /// Create a interface
  /// </summary>
  /// <remarks>
  /// 创建Demo 的数据层接口
  /// </remarks>
  /// <returns></returns>
  public static IDemo CreateDemo()
  {
  string className = namespacePath + ".Demo";
  return (IDemo)Assembly.Load(assemblyPath).CreateInstance(className);//这2行代码分别是什么意思
  }

  }
}

------解决方案--------------------
C# code
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是接口