usingSystem;
  usingSystem.Collections.Generic;
  usingSystem.Linq;
  usingSystem.Text;
  usingSystem.Threading.Tasks;
  usingSystem.ComponentModel;
  usingSystem.Linq;
  usingSystem.Reflection;
  publicclassreflectModel
  {
  publicstaticvoidTestShowReflect()
  {
  //反射读取类私有属性
  Personper=newPerson(“ismallboy”,”20102100104″);
  Typet=per.GetType();
  //获取私有方法
  MethodInfomethod=t.GetMethod(“GetStuInfo”,BindingFlags.NonPublic|BindingFlags.Instance);
  //访问无参数私有方法
  stringstrTest=method.Invoke(per,null).ToString();C#使用反射访问对象属性方法
  //访问有参数私有方法
  MethodInfomethod2=t.GetMethod(“GetValue”,BindingFlags.NonPublic|BindingFlags.Instance);
  object[]par=newobject[2];
  par[0]=”ismallboy”;
  par[1]=2;
  stringstrTest2=method2.Invoke(per,par).ToString();
  //获取私有字段
  PropertyInfofield=t.GetProperty(“Name”,BindingFlags.NonPublic|BindingFlags.Instance);
  //访问私有字段值
  stringvalue=field.GetValue(per).ToString();
  //设置私有字段值
  field.SetValue(per,”newName”);
  value=field.GetValue(per).ToString();
  }
  }
  ///<summary>
  ///个人信息
  ///</summary>
  classPerson
  {
  privatestringName{get;set;}
  privatestringStuNo{get;set;}
  publicPerson(stringname,stringstuNo)
  {
  this.Name=name;
  this.StuNo=stuNo;
  }
  privatestringGetStuInfo()
  {
  returnthis.Name;
  }
  privatestringGetValue(stringstr,intn)
  {
  returnstr+n.ToString();
  }
  }
  reflectModel


阿猿啊
31 声望0 粉丝