根据字符串返回类型
2013-04-28 15:57 咒语 阅读(561) 评论(1) 编辑 收藏 举报在C#编程过程中,使用Type.GetType(string)方法来获取一个字符串对应的类型,但是这个字符串的搜索并不是所有的程序集和引用的程序集中的。所以要自已写个。
/// <summary> /// 运行及引用的程序集的类型搜索 /// </summary> /// <param name="type"></param> /// <returns></returns> private static Type GetTypeFromAssembly(string type) { var x = Type.GetType(type, false, true); if (x != null) return x; var executingAssembly = Assembly.GetExecutingAssembly(); x = executingAssembly.GetType(type); if (x != null) return x; var assNames = executingAssembly.GetReferencedAssemblies(); foreach (var name in assNames) { if (name.FullName.StartsWith("System", StringComparison.OrdinalIgnoreCase) || name.FullName.StartsWith("mscorlib", StringComparison.OrdinalIgnoreCase)) continue; var assembly = Assembly.Load(name); x = assembly.GetType(type); if (x != null) return x; } return null; throw new TypeLoadException(string.Format("所有运行中的程序集中没有发现{0}的类型。", type)); }