public class tbaseEntity
    {
        private int mm;
        public int pid;
        public string mc;        
    }
    public class Tclentity : tbaseEntity
    {
        private string abc;
        public System.String clmc;
    }        Tclentity acl = new Tclentity();        settoclass(acl, "怎么");    public void settoclass(tbaseEntity aEntity,string mm)
    {
        FieldInfo[] Pinfo = aEntity.GetType().GetFields();
        foreach (FieldInfo aInfo in Pinfo)
        {
            
            if (aInfo.FieldType.FullName =="System.String")
            {
                    aInfo.SetValue(aInfo.Name ,mm); 
                    break;
            }        }aInfo.SetValue(aInfo.Name ,mm); 这一句出出错。具体提示:
System.ArgumentException: 类型“Service+Tclentity”上定义的字段“clmc”不是类型为“System.String”的目标对象上的字段。
这是为什么?        
        
    }

解决方案 »

  1.   

    aInfo.SetValue(aEntity, mm);
    多看MSDN 了解FieldInfo.SetValue的用法
      

  2.   

    mm 是string型.FieldInfo.SetValue的用法..??有特殊之处..???
      

  3.   

    Macosx(很少看短消息)  指定下:::看不到有什么特别的???
      

  4.   

    SetValue第一个参数是要赋值的对象 怎么能用aInfo.Name  不是特殊用法 根本是你不会用
      

  5.   

    aInfo.SetValue(aEntity, mm);
     Macosx(很少看短消息) ( ) 信誉:106    Blog   加为好友  2007-04-27 17:39:20  得分: 0  
    正解