C#之反射动态获取类中成员
初始接触反射概念,往下看。
先建一个类User
代码
接着在主程序中获取类的属性,看代码
namespace ClassLibrary1
{
public class User
{
private int userid = 1;
/// <summary>
///
/// </summary>
public int Userid
{
get { return userid; }
set { userid = value; }
}
private string userName = "jghg";
/// <summary>
///
/// </summary>
public string UserName
{
get { return userName; }
set { userName = value; }
}
private string address = "ghjghj";
/// <summary>
///
/// </summary>
public string Address
{
get { return address; }
set { address = value; }
}
private string email = "jhgjhg";
/// <summary>
///
/// </summary>
public string Email
{
get { return email; }
set { email = value; }
}
private string phone = "ghjgjg";
/// <summary>
///
/// </summary>
public string Phone
{
get { return phone; }
set { phone = value; }
}
}
}
代码
分析:
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
Type type = typeof(ClassLibrary1.User);
object obj = Activator.CreateInstance(type);
PropertyInfo[] props = type.GetProperties(BindingFlags.Public | BindingFlags.Instance);
foreach (PropertyInfo p in props)
{
Console.WriteLine(p.Name);
}
Console.ReadLine();
}
}
}
Type type = typeof(ClassLibrary1.User); //把类转换成Type类型
PropertyInfo[] props = type.GetProperties(BindingFlags.Public | BindingFlags.Instance); //获取类中属性
foreach (PropertyInfo p in props) //遍历
{
Console.WriteLine(p.Name);
}