本帖最后由 Love001 于 2012-07-26 15:07:52 编辑

解决方案 »

  1.   

    本帖最后由 bdmh 于 2012-07-26 15:14:24 编辑
      

  2.   

    属性是肯定不可以的。
    调用只读属性的SetValue会抛出异常
    字段就不知道了。。你可以试试
      

  3.   

    拜托,版主都亲测了,可行
    属性也是可以的public class Car
        {
            [ReadOnly(true)]
            public int Height{get;set;}
        }
    static void Main(string[] args)
            {            Car car = new Car();
                car.GetType().GetProperty("Height").SetValue(car, 100,null); //ok
                Console.WriteLine(car.Height); //100
                Console.Read();
            }
      

  4.   

    谢谢各位!研究了一下,[ReadOnly(true)]并不控制属性为只读,只是通过ProPertygrid控件绑定的时候有效。public class Car
        {
            public readonly int Height;
        }
    static void Main(string[] args)
            {            Car car = new Car();
                FieldInfo fi = car.GetType().GetField("Height");
                fi.SetValue(obj, 100); //ok
                Console.WriteLine(car.Height); //100
                Console.Read();
            }可以实现给只读字段赋值。但是我的问题又来了,如何给子类的父类的只读字段赋值?谢谢各位!!!!!!
      

  5.   

    拜托,版主都亲测了,可行
    属性也是可以的public class Car
        {
            [ReadOnly(true)]
            public int Height{get;set;}
        }
    static void Main(string[] args)
            {            Car car = new Car();
                car.GetType().GetProperty("Height").SetValue(car, 100,null); //ok
                Console.WriteLine(car.Height); //100
                Console.Read();
            }
    可行啥呀  给只读属性赋值 public int Height{get;set;}