对象Transform,对属性赋值

private void ContructRequest(Dictionary<string, string> dictionary, CustomerSearchRequest request)
        {
            for (int i = 0; i < dictionary.Count; i++)
            {
                var property = request.GetType().GetProperties().FirstOrDefault(p => p.Name == dictionary.Keys.ElementAt<string>(i));
                if (property == null) continue;
                var propertyValue = ConvertToPropType(property, dictionary.Values.ElementAt<string>(i));
                property.SetValue(request, propertyValue, null);
            }
        }

对可空类型做处理:

public static object ConvertToPropType(PropertyInfo property, object value)
        {
            object cstVal = null;
            if (property != null)
            {
                Type propType = Nullable.GetUnderlyingType(property.PropertyType);
                bool isNullable = (propType != null);
                if (!isNullable) { propType = property.PropertyType; }
                bool canAttrib = (value != null || isNullable);
                if (!canAttrib) { throw new Exception("Cant attrib null on non nullable. "); }
                cstVal = (value == null || Convert.IsDBNull(value)) ? null : Convert.ChangeType(value, propType, null);
            }
            return cstVal;
        }

对象Transform,对属性赋值

时间: 2024-08-30 17:21:31

对象Transform,对属性赋值的相关文章

对对象中的属性赋值(两种方法)

第一种方法:使用引用名称.属性名称 = 值; 如:Tom.breed = "泰迪"; 第二种方法:使用构造方法完成 原文地址:https://www.cnblogs.com/penphy/p/10914170.html

【Java EE 学习第69天】【struts2】【paramsPrepareParamsStack拦截器栈解决model对象和属性赋值冲突问题】

昨天有同学问我问题,他告诉我他的Action中的一个属性明明提供了get/set方法,但是在方法中却获取不到表单中传递过来的值.代码如下(简化后的代码) 1 public class UserAction implements modelDriven<User>(){ 2 private String name; 3 private User model; 4 public void setName(String name){ 5 this.name=name; 6 } 7 public St

MyBatis拦截器:给参数对象属性赋值

1 package com.development; 2 3 import java.lang.reflect.InvocationTargetException; 4 import java.util.Date; 5 import java.util.Map; 6 import java.util.Properties; 7 8 import org.apache.commons.beanutils.BeanUtils; 9 import org.apache.ibatis.executor.

107-PHP类成员属性赋值

<?php class mao{ //定义猫类 public $age; //定义多个成员属性 protected $weight; private $color; } $mao1=new mao(); //实例化一个对象 echo '输出对象$mao1的age属性:'.$mao1->age; $mao1->age=3; //给对象的age属性赋值 echo '<br />再次输出$mao1的age属性:'.$mao1->age; ?> 原文地址:https://

JavaScript对象属性赋值操作的逻辑

对象进行属性赋值操作时,其执行逻辑如下所示: 1. 当前对象中是否有该属性?有,进行赋值操作:没有,进行下一步判断. 2. 对象的原型链中是否有该属性?没有,在当前对象上创建该属性,并赋值:有,进行下一步判断. 3. 原型链中该属性是否允许操作?是,在当前对象上创建同名属性,并赋值:否,属性赋值失败. 无论是属性赋值还是新建属性,都是在当前对象上进行的,不会修改原型链!第三种情况下,新建的属性将会覆盖对象从原型链继承来的同名属性.

iOS开发UI之KVC(取值/赋值) - KVO (观察某个对象的某个属性的改变)

一. KVC : key value coding,通常用来给某一个对象的属性赋值 1. KVC赋值 // 1.1 创建人 LDPerson *p = [[LDPerson alloc] init]; self.person = p; // 1.2 创建狗 LDDog *dog = [[LDDog alloc] init]; // 1.3 将狗赋值给人 [p setValue:dog forKeyPath:@"dog"]; // 1.4 通过kvc给dog的weight属性赋值 \ 赋

在Flex中使用JSON对象为属性赋值

JavaScript中,JSON的简洁和强大令人印象深刻.ActionScript3作为一种从JavaScript语言发展起来的语言,依然可以使用JSON. 依然可以var  object={a:1,b:”b”,c:”1111”};这样的JSON形式创建ActionScript对象. 在JavaScript中,我们常常在new 对象时,通过传入{……}这样的JSON数据方便地初始化对象. 在ActionScript中,我们依然可以这样做. package { public class Const

007-ant design 对象属性赋值,双向绑定

1.state对象属性赋值 设对象为 state={ datavalue:{ id:'', name:'', }, } 修改对象属性为: SetName=(e)=>{ let val=e.target.value; let data = Object.assign({}, this.state.datavalue, { name: val }) this.setState({ datavalue: data }) console.log(this.state.datavalue,data) }

通过supper()有参构造器,完成子类对象调用父类属性的方法,并完成赋值

package com.Summer_0426.cn; /** * @author Summer * 通过supper()有参构造器,完成子类对象调用父类属性的方法,并完成赋值 * */ public class Test01 { public static void main(String[] args) { JavaTeacher guoxiang = new JavaTeacher("郭襄");//子类实例化,并传入参数 guoxiang.giveLesson();//输出结果,