请教后下,如果 private int i=12; protected string sabc = "a"; public DateTime dt = DateTime.Now; 还有一个: public Users objUser=new User("001","张三"); 其中User类为: class User { public string UserId=string.Empty; public string UserName=string.Empty; public User(string _userId,string _userName) { UserId=_userId; UserName=_userName; } } 如何得到User对象中的UserId,UserName呢,请大家帮忙!
sing System; using System.Reflection;class User { public string UserId=string.Empty; public string UserName=string.Empty; public User(string _userId,string _userName) { UserId=_userId; UserName=_userName; } } class TestField { private int i=12; protected string sabc = "a"; public DateTime dt = DateTime.Now; public User objUser=new User("001","张三"); static void Main() { TestField tf = new TestField(); GetProperties(tf); } static void GetProperties(Object t) { foreach (FieldInfo fi in t.GetType().GetFields(BindingFlags.Public|BindingFlags.Instance|BindingFlags.NonPublic)) { object o = fi.GetValue(t); Console.WriteLine("name:{0}==>value:{1}", fi.Name, o.ToString()); if (fi.FieldType.IsClass && !(o is String)) { GetProperties(o); } } } }
using System;
using System.Reflection;class TestField
{
private int i=12;
protected string sabc = "a";
public DateTime dt = DateTime.Now; static void Main()
{
TestField tf = new TestField();
foreach (FieldInfo fi in tf.GetType().GetFields(BindingFlags.Public|BindingFlags.Instance|BindingFlags.NonPublic))
{
object o = fi.GetValue(tf);
Console.WriteLine("name:{0}==>value:{1}", fi.Name, o.ToString());
}
}
}
private int i=12;
protected string sabc = "a";
public DateTime dt = DateTime.Now;
还有一个:
public Users objUser=new User("001","张三");
其中User类为:
class User
{
public string UserId=string.Empty;
public string UserName=string.Empty;
public User(string _userId,string _userName)
{
UserId=_userId;
UserName=_userName;
}
}
如何得到User对象中的UserId,UserName呢,请大家帮忙!
http://community.csdn.net/Expert/topic/4293/4293461.xml?temp=.4418909
using System.Reflection;class User
{
public string UserId=string.Empty;
public string UserName=string.Empty;
public User(string _userId,string _userName)
{
UserId=_userId;
UserName=_userName;
}
} class TestField
{
private int i=12;
protected string sabc = "a";
public DateTime dt = DateTime.Now;
public User objUser=new User("001","张三"); static void Main()
{
TestField tf = new TestField();
GetProperties(tf);
} static void GetProperties(Object t)
{
foreach (FieldInfo fi in t.GetType().GetFields(BindingFlags.Public|BindingFlags.Instance|BindingFlags.NonPublic))
{
object o = fi.GetValue(t);
Console.WriteLine("name:{0}==>value:{1}", fi.Name, o.ToString());
if (fi.FieldType.IsClass && !(o is String))
{
GetProperties(o);
}
}
}
}
谢谢 saucer(思归),正在试你提供的方法!十分感谢!
Johnny_de(天才): 用string.Empty是为了弥补变量没有初始化的缺陷。
t.GetType().GetFields(BindingFlags.Public|BindingFlags.Instance|BindingFlags.NonPublic),用这句代码好像没办法得到TestField 的基类中的一些Field,不知道有没有其它途径可以实现?请大家指点!多谢~!
我试过System.Reflection.PropertyInfo[] properties = tf.GetType().GetProperties();这样得不到bb!
按理来说private成员只能在类内部使用