asp.net的
我已知一个类的属性名存在string里
如何把他赋值?比如
我有个string a="name"(动态可变)
一个类里有个name属性。如何给他赋值。发射遍历?

解决方案 »

  1.   

    你理解错了,是给name属性赋值
      

  2.   

    用反射
    参考
    http://blog.csdn.net/tianyu00/archive/2007/05/21/1618723.aspx
      

  3.   

    那个Name是动态的?
    string a="+NAME+"
    那个NAME可以是动态的,比如是XX TABLE里的
    你可以绑定了TABLE XX=new table()
    XX.NAME放进去
      

  4.   

    使用反射        public class Student
            {
                private string name;
                public string Name
                {
                    get 
                    {
                        return this.name;
                    }
                    set
                    {
                        this.name = value;
                    }
                }
            }参考下吧            string a = "Name";
                Student s = new Student();
                Type t = s.GetType();
                PropertyInfo[] p = t.GetProperties();
                foreach (PropertyInfo pi in p)
                {
                    if (pi.Name == a)
                    {
                        pi.SetValue(s, "Neal", null);
                    }
                }
                Console.WriteLine(s.Name);
      

  5.   

    A p=new A();
    var info = p.GetType().GetProperty("");
    if (info != null) 

      info.SetValue(p, "", null); 

      

  6.   

    实例化类的对象,比如有一个UserInfo类,里面有一个name属性
    UserInfo ui=new UserInfo();
    ui.name=值;
      

  7.   

    @lz:
    上述代码应该稍加改动:
    Student student = new Student(a); //此处不进行初始化如何进行比对?
      

  8.   

    @8楼:
    让您见笑,我收回才刚的代码,是我理解错了.
    pi.Name获取的是公共属性名字符串!支持正确的说法!
      

  9.   

    封装字段
    get
    {
      return name;
    }
    set
    {
      name=value;
    }
      

  10.   

    封装字段
    get
    {
      return name;
    }
    set
    {
      name=value;
    }