コード例 #1
0
        public static Object GetFieldValue(Object obj, FieldInfo field)
        {
            //创建Set委托
            var getter = DynamicMethodCompiler.CreateGetHandler(obj.GetType(), field);

            //获取字段值
            return(getter(obj));
        }
コード例 #2
0
        public static Object GetPropertyValue(Object obj, PropertyInfo property)
        {
            //创建Set委托
            var getter = DynamicMethodCompiler.CreateGetHandler(obj.GetType(), property);

            //获取属性值
            return(getter(obj));
        }
コード例 #3
0
        public static void SetFieldValue(Object obj, FieldInfo field, Object value)
        {
            //创建Set委托
            var setter = DynamicMethodCompiler.CreateSetHandler(obj.GetType(), field);

            //先获取该私有成员的数据类型
            var type = field.FieldType;

            //通过数据类型转换
            value = TypeUtils.ConvertForType(value, type);

            //将值设置到对象中
            setter(obj, value);
        }
コード例 #4
0
        public static void SetPropertyValue(Object obj, PropertyInfo property, Object value)
        {
            //创建Set委托
            var setter = DynamicMethodCompiler.CreateSetHandler(obj.GetType(), property);

            //先获取该私有成员的数据类型
            var type = property.PropertyType;

            //通过数据类型转换
            value = TypeUtils.ConvertForType(value, type);

            //将值设置到对象中
            setter(obj, value);
        }