先定義一個類:
public class User { public User() { Console.WriteLine($"{this.GetType().Name}被構造"); } public int Id { get; set; } public string Name { get; set; } public string ClassID; }
反射:
//常規寫法賦值 { User user = new User(); user.Id = 123; user.Name = "張三"; user.ClassID = "1"; Console.WriteLine($"User.Name={user.Name}"); Console.WriteLine($"User.ClassID={user.ClassID}"); Console.WriteLine($"User.Id={user.Id}"); } //利用反射動態賦值 { Type type = typeof(User); //獲取類型 object a = Activator.CreateInstance(type); //創建對象 foreach (var Prop in type.GetProperties())//GetProperties獲取屬性 { Console.WriteLine($"{type.Name}.{Prop.Name}={Prop.GetValue(a)}"); if (Prop.Name.Equals("Id")) { Prop.SetValue(a, 213);//設置值 } else if (Prop.Name.Equals("Name")) { Prop.SetValue(a,"張三"); } Console.WriteLine($"{type.Name}.{Prop.Name}={Prop.GetValue(a)}");//獲取值 } foreach (var Field in type.GetFields())//GetFields獲取字段 { Console.WriteLine($"{type.Name}.{Field.Name}={Field.GetValue(a)}"); if (Field.Name.Equals("ClassID")) { Field.SetValue(a, "213"); } Console.WriteLine($"{type.Name}.{Field.Name}={Field.GetValue(a)}"); } }