C#反射操作常用方法

       /// <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);}