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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。