当然可以如下:
Type t = this.GetType();
MethodInfo mii = t.GetProperty("a").GetGetMethod();
Console.WriteLine(mii.Invoke(this,null));
Type t = this.GetType();
MethodInfo mii = t.GetProperty("a").GetGetMethod();
Console.WriteLine(mii.Invoke(this,null));
解决方案 »
- 一个多行的label,如何分别得到每行的文字内容?
- 这个正则是啥意思啊
- C#游戏怎么实现怪物尾随角色
- C#调用Video for Windows中的视频格式
- C#获取数据库加载时间的问题(急)
- 请问:日语2级和英语6级考试哪一个更难一点?
- 提问,如何将这段代码转换成C#代码,或者在C#中如何引用C++的代码,谢谢
- 关于WCF(高手请进)
- vs2008动态引用加载dll的32位和64位版本
- 我在运行程序中拖动控件的位置,下次我重新进入程序中,怎么才能使控件就在我上次拖放的位置??
- (帖子太多了,就没人看到我的帖子,100分啊)如何把一个不可序列化的对象存入数据库
- OleDbDataReader.Read()不会自动转到下一行吗?在线等,晚上结帖
static void Main(string[] args)
{
MoneyHome.Class.DataOperate d = new MoneyHome.Class.DataOperate();//实例
Type t = d.GetType();
MessageBox.Show(t.Namespace,"DataOperate类的命名空间");
MessageBox.Show(t.IsClass.ToString(),"DataOperae是不是一个类");
MemberInfo[] m = t.GetMembers();
StringBuilder st = new StringBuilder(800);
foreach(MemberInfo m1 in m)
{
st.Append("Members: ");
st.Append(m1.ToString());
st.Append("\n");
}
同样的道理,你可以通过 t.GetProperty("xxx").GetSetMethod()来设置值
{
Console.WriteLine( pInfo.Name );
}
异常详细信息: System.Reflection.AmbiguousMatchException: 发现不明确的匹配。
源错误:
Type t = pdt.GetType();
PropertyInfo[] arrpf= t.GetProperties();
foreach(PropertyInfo pf in arrpf)
{
MethodInfo mf = t.GetProperty(pf.Name).GetGetMethod(); <------------------在这错
object objx = mf.Invoke(pdt,null);
}
PropertyInfo[] arrpf= t.GetProperties();
foreach(PropertyInfo p in arrpf)
{
MethodInfo mii = t.GetProperty(p.Name).GetGetMethod();
Console.WriteLine(mii.Invoke(this,null));
}
我这里没有问题
Type t = this.GetType();
PropertyInfo[] arrpf= t.GetProperties();
foreach(PropertyInfo p in arrpf)
{
// MethodInfo mii = t.GetProperty(p.Name).GetGetMethod();
// Console.WriteLine(mii.Invoke(this,null));
Console.WriteLine(p.GetValue(this,null).ToString());
}