Exemplo n.º 1
0
 /// <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);
     }
 }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
 /// <summary>
 /// 快速实例化一个FastCreateInstanceHandler
 /// </summary>
 /// <param name="type"></param>
 /// <returns></returns>
 public static FastCreateInstanceHandler Create(Type type)
 {
     return DynamicCalls.GetInstanceCreator(type);
 }
Exemplo n.º 4
0
 /// <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);
 }