zoukankan      html  css  js  c++  java
  • C# 反射给对象赋值遇到的问题——类型转换

    给一个对象属性赋值可以通过PropertyInfo.SetValue()方式进行赋值,但要注意值的类型要与属性保持一致。  

    创建对象实例 

    1>

    var obj = Assembly.Load("AssemblyName").CreateInstance("AssemblyName"+"ClassFullName");
    2>
    var obj = Activator.CreateInstance(ClassType);
     
    赋值
    var property = obj.GetType().GetProperty("PropertyName");//此时可以使用GetProperty获取属性数组,循环进行赋值,这里主要讲解类型问题。
    1>该属性类型是已知类型,例如:int
    int value=500;
    property.SetValue(obj,value,null);
     
    2>该属性类型是已知类型,原值是其他类型。例如:目标类型为int,值为string
    string value="500";
    property.SetValue(obj,int.TryParse(value),null);//类型转换。
     
    3>该属性类型是未知非泛型类型,不确定目标类型,如何进行类型转换。
    object value="500";
    property.SetValue(obj,Convert.ChangeType(value,property.PropertyType),null);//类型转换。
    程序员的基础教程:菜鸟程序员
  • 相关阅读:
    Puppet部署
    ldap命令
    openldap slapd.conf参数
    ldap objectclass
    ldap 测试表设计
    Nginx/LVS/HAProxy负载均衡软件的优缺点
    SNAT DNAT MASQUERADE 区别
    iptables常用规则
    Python中文注释报错的解决方法
    用Node.js给邮箱发送邮件
  • 原文地址:https://www.cnblogs.com/guohu/p/4496510.html
Copyright © 2011-2022 走看看