首页 > 代码库 > C# 根据对象类完整名称,创建对象实例
C# 根据对象类完整名称,创建对象实例
转自:http://blog.csdn.net/mm33211/article/details/8143890
C# 根据对象类完整名称,创建对象实例
/// <summary> /// 根据指定的类全名,返回对象实例 /// </summary> /// <param name="objFullName">对象完整名称(包名和类名),如:com.xxx.Test</param> public object createObjectInstance(string objFullName) { //获取当前目录 string currentDir = Assembly.GetExecutingAssembly().Location; currentDir = currentDir.Substring(0, currentDir.LastIndexOf(‘\\‘)); DirectoryInfo di = new DirectoryInfo(currentDir); //获取当前目录下的所有DLL文件 FileInfo[] files = di.GetFiles("*.dll");//只查.dll文件 //遍历所有文件,查找需要对象的实现定义 Type type = Type.GetType(objFullName); if (type == null) { foreach (FileInfo fi in files) { type = getObjectType(fi.FullName, objFullName); if (type != null) { break; } } } if (type == null) { //throw new Exception("can not find class define of " + objFullName); return null; } //将对象实例化 object obj=Activator.CreateInstance(type); return obj; } /// <summary> /// 从DLL文件中查找指定的对象定义 /// </summary> /// <param name="dllFile">DLL文件路径</param> /// <param name="objFullName">对象完整名称(包名和类名),如:com.xxx.Test</param> /// <returns>如果找到,返回其对应的Type;如果没找到,则返回null</returns> private Type getObjectType(string dllFile, string objFullName) { Type type = Assembly.LoadFile(dllFile).GetType(objFullName); if (type != null) { Console.WriteLine("find obj in dll[" + dllFile + "]"); return type; } return null; }
C# 根据对象类完整名称,创建对象实例
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。