C#反射操作常用方法
2016-11-15 12:50
357 查看
/// <summary> /// 生成程序集对象 /// </summary> /// <param name="assemblyPath"></param> /// <returns></returns> public static Assembly GetAssembly(string assemblyPath) { return Assembly.LoadFile(assemblyPath); } /// <summary> /// 获取指定名称的类型对象 /// </summary> /// <param name="assembly"></param> /// <param name="fullName"></param> /// <returns></returns> public static Type GetTypeInAssembly(Assembly assembly, string fullName) { return assembly.GetType(fullName); } /// <summary> /// 获取对象的类型 /// </summary> /// <param name="obj"></param> /// <returns></returns> public static Type GetTypeFromObject(object obj) { return obj.GetType(); } /// <summary> /// 根据类型的字符串名称生成类型对象 /// </summary> /// <param name="obj"></param> /// <returns></returns> public static Type GetTypeFromString(string name) { return Type.GetType(name); } /// <summary> /// 调用无参构造函数生成实例 /// </summary> /// <param name="type">类型</param> /// <returns></returns> public static object CreateInstance(Type type) { return Activator.CreateInstance(type); } /// <summary> /// 调用构造函数生成实例 /// </summary> /// <param name="type">类型</param> /// <param name="obj">构造函数参数集合</param> /// <returns></returns> public static object CreateInstance(Type type, object[] obj) { return Activator.CreateInstance(type, obj); } /// <summary> /// 调用构造函数生成实例 /// </summary> /// <param name="type">类型</param> /// <param name="pt">构造函数参数类型集合</param> /// <param name="obj">构造函数参数集合</param> /// <returns></returns> public static object CreateInstance(Type type, Type[] pt, object[] obj) { return type.GetConstructor(pt).Invoke(obj); } /// <summary> /// 根据参数类型获取构造函数 /// </summary> /// <param name="type">类型</param> /// <param name="paramTypes">构造函数参数类型</param> /// <returns></returns> public static ConstructorInfo GetConstructor(Type type,Type[] paramTypes) { return type.GetConstructor(paramTypes); } /// <summary> /// 获取构造函数 /// </summary> /// <param name="type"></param> /// <returns></returns> public static ConstructorInfo[] GetConstructors(Type type) { return type.GetConstructors(); } /// <summary> /// 根据字段名称获取类的字段的信息 /// </summary> /// <param name="type"></param> /// <param name="name"></param> /// <returns></returns> public static FieldInfo GetPublicField(Type type, string name) { return type.GetField(name); } /// <summary> /// 获取类的字段的信息 /// </summary> /// <param name="type"></param> /// <returns></returns> public static FieldInfo[] GetPublicFields(Type type) { return type.GetFields(); } /// <summary> /// 根据属性名称获取类的属性的信息 /// </summary> /// <param name="type"></param> /// <param name="name"></param> /// <returns></returns> public static PropertyInfo GetPublicProperty(Type type, string name) { return type.GetProperty(name); } /// <summary> /// 获取类的属性的信息 /// </summary> /// <param name="type"></param> /// <returns></returns> public static PropertyInfo[] GetProperties(Type type) { return type.GetProperties(); } /// <summary> /// 根据事件名称获取类的事件的信息 /// </summary> /// <param name="type"></param> /// <param name="name"></param> /// <returns></returns> public static EventInfo GetPublicEvent(Type type, string name) { return type.GetEvent(name); } /// <summary> /// 获取类的事件的信息 /// </summary> /// <param name="type"></param> /// <returns></returns> public static EventInfo[] GetPublicEvents(Type type) { return type.GetEvents(); } /// <summary> /// 根据方法名称获取类的公开方法的信息 /// </summary> /// <param name="type"></param> /// <param name="name"></param> /// <returns></returns> public static MethodInfo GetPublicMethod(Type type, string name) { return type.GetMethod(name); } /// <summary> /// 获取类的公开方法的信息 /// </summary> /// <param name="type"></param> /// <returns></returns> public static MethodInfo[] GetPublicMethods(Type type) { return type.GetMethods(); } /// <summary> /// 根据名称获取类的所有成员的信息 /// </summary> /// <param name="type"></param> /// <param name="name"></param> /// <returns></returns> public static MemberInfo[] GetPublicMember(Type type, string name) { return type.GetMember(name); } /// <summary> /// 获取类的所有成员的信息 /// </summary> /// <param name="type"></param> /// <returns></returns> public static MemberInfo[] GetPublicMembers(Type type) { return type.GetMembers(); } /// <summary> /// 验证一下parentType是不是childType的父类 /// 判断是否可以将childType对象赋值给parentType对象 /// </summary> /// <param name="parentType"></param> /// <param name="childType"></param> /// <returns></returns> public static bool IsParentTo(Type parentType,Type childType) { return parentType.IsAssignableFrom(childType); } /// <summary> /// 验证一下childType是不是parentType的子类 /// </summary> /// <param name="childType"></param> /// <param name="parentType"></param> /// <returns></returns> public static bool IsSubClassTo(Type childType, Type parentType) { return childType.IsSubclassOf(parentType); } /// <summary> /// 验证obj是否是type的实例 /// </summary> /// <param name="type"></param> /// <param name="obj"></param> /// <returns></returns> public static bool IsAInstanceTo(Type type, object obj) { return type.IsInstanceOfType(obj); }
相关文章推荐
- C#反射操作常用方法
- C# 文件操作常用方法总结
- C#操作Excel时,Excel常用的方法和属性zz
- C#中常用的经典文件操作方法
- 最为常用的C#经典操作文件方法
- C#操作Excell常用方法
- C#操作Excell常用方法
- C#操作数据库的常用公共方法!
- C#操作操作类库五(字符串的常用扩展方法)
- C# 图片操作 常用方法 总结
- C#中利用反射操作私有字段与私有方法
- C#中利用反射操作私有字段与私有方法
- C#中常用的经典文件操作方法
- c#操作XML常用方法
- C#中常用的文件操作方法
- C#操作Excel时,Excel常用的方法和属性
- [转]C#操作Excel时,Excel常用的方法和属性
- C#操作Excel时,Excel常用的方法和属性
- C# 操作word常用方法
- 常用 C#操作字符串方法