/// <summary> /// 设置属性值 /// </summary> /// <param name="obj"></param> /// <param name="property"></param> /// <param name="value"></param> public static void SetPropertyValue(object obj, PropertyInfo property, object value) { if (property.CanWrite) { FastPropertySetHandler propertySetter = DynamicCalls.GetPropertySetter(property); value = ConvertValue(property.PropertyType, value); propertySetter(obj, value); } }
/// <summary> /// 获取属性值 /// </summary> /// <param name="obj"></param> /// <param name="property"></param> /// <returns></returns> public static object GetPropertyValue(object obj, PropertyInfo property) { if (property.CanRead) { FastPropertyGetHandler propertyGetter = DynamicCalls.GetPropertyGetter(property); return(propertyGetter(obj)); } return(null); }
/// <summary> /// 快速实例化一个FastCreateInstanceHandler /// </summary> /// <param name="type"></param> /// <returns></returns> public static FastCreateInstanceHandler Create(Type type) { return DynamicCalls.GetInstanceCreator(type); }
/// <summary> /// 快速执行Method /// </summary> /// <param name="obj"></param> /// <param name="method"></param> /// <param name="parameters"></param> /// <returns></returns> public static object FastMethodInvoke(object obj, MethodInfo method, params object[] parameters) { return DynamicCalls.GetMethodInvoker(method)(obj, parameters); }