public static void Main() { //演示一:动态生成类。 #region 演示一:动态生成类。 //生成一个类t。 Type t = ClassHelper.BuildType("MyClass"); #endregion //演示二:动态添加属性到类。 #region 演示二:动态添加属性到类。 //先定义两个属性。 List <ClassHelper.CustPropertyInfo> lcpi = new List <ClassHelper.CustPropertyInfo>(); ClassHelper.CustPropertyInfo cpi; cpi = new ClassHelper.CustPropertyInfo("System.String", "S1"); lcpi.Add(cpi); cpi = new ClassHelper.CustPropertyInfo("System.String", "S2"); lcpi.Add(cpi); //再加入上面定义的两个属性到我们生成的类t。 t = ClassHelper.AddProperty(t, lcpi); //把它显示出来。 DispProperty(t); //再定义两个属性。 lcpi.Clear(); cpi = new ClassHelper.CustPropertyInfo("System.Int32", "I1"); lcpi.Add(cpi); cpi = new ClassHelper.CustPropertyInfo("System.Int32", "I2"); lcpi.Add(cpi); //再加入上面定义的两个属性到我们生成的类t。 t = ClassHelper.AddProperty(t, lcpi); //再把它显示出来,看看有没有增加到4个属性。 DispProperty(t); #endregion //演示三:动态从类里删除属性。 #region 演示三:动态从类里删除属性。 //把'S1'属性从类t中删除。 t = ClassHelper.DeleteProperty(t, "S1"); //显示出来,可以看到'S1'不见了。 DispProperty(t); #endregion //演示四:动态获取和设置属性值。 #region 演示四:动态获取和设置属性值。 //先生成一个类t的实例o。 object o = ClassHelper.CreateInstance(t); //给S2,I2属性赋值。 ClassHelper.SetPropertyValue(o, "S2", "abcd"); ClassHelper.SetPropertyValue(o, "I2", 1234); //再把S2,I2的属性值显示出来。 Console.WriteLine("S2 = {0}", ClassHelper.GetPropertyValue(o, "S2")); Console.WriteLine("I2 = {0}", ClassHelper.GetPropertyValue(o, "I2")); #endregion Console.Read(); }