public static IArticleSource CreateArticleSource()
{ string ClassNamespace = AssemblyNameSpace + ".ArticleSourceService";
object objType = CreateObject(AssemblyPath, ClassNamespace);
return objType as IArticleSource;
}
这个是一段代码。大家帮我详细的解释一下,最好还能提供点这方面好的学习资料。
{ string ClassNamespace = AssemblyNameSpace + ".ArticleSourceService";
object objType = CreateObject(AssemblyPath, ClassNamespace);
return objType as IArticleSource;
}
这个是一段代码。大家帮我详细的解释一下,最好还能提供点这方面好的学习资料。
变量ClassNamespace是一个完整的类名称(包括命名空间名)
变量AssemblyPath是程序集的名称
方法CreateObject(AssemblyPath, ClassNamespace)应该是用来创建类ArticleSourceService的一个对象,就常说的用反射来创建对象.
/// 创建对象或从缓存获取
/// </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;
}
通过反射机制,实例化接口对象
CreateObject自定义方法