public static IArticleSource CreateArticleSource()
        {            string ClassNamespace = AssemblyNameSpace + ".ArticleSourceService";
            object objType = CreateObject(AssemblyPath, ClassNamespace);
            return objType as IArticleSource;
        }
这个是一段代码。大家帮我详细的解释一下,最好还能提供点这方面好的学习资料。

解决方案 »

  1.   

    从代码中可以看出,
    变量ClassNamespace是一个完整的类名称(包括命名空间名)
    变量AssemblyPath是程序集的名称
    方法CreateObject(AssemblyPath, ClassNamespace)应该是用来创建类ArticleSourceService的一个对象,就常说的用反射来创建对象.
      

  2.   

    大家说的很对啊。以下是自定义的方法:        /// <summary>
            /// 创建对象或从缓存获取
            /// </summary>
            /// <param name="AssemblyPath">程序集名称</param>
            /// <param name="ClassNamespace">指定类的命名空间</param>
            /// <returns></returns>
            public static object CreateObject(string AssemblyPath, string ClassNamespace)
            {
                object objType = DataCache.GetCache(ClassNamespace);//从缓存读取
                if (objType == null)//判断是否NULL
                {
                    try
                    {
                        objType = Assembly.Load(AssemblyPath).CreateInstance(ClassNamespace);//反射创建
                        DataCache.SetCache(ClassNamespace, objType);// 写入缓存
                    }
                    catch
                    { }
                }
                return objType;
            }
      

  3.   

    创建工厂方法
    通过反射机制,实例化接口对象
    CreateObject自定义方法