拜托,版主都亲测了,可行 属性也是可以的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(); }
谢谢各位!研究了一下,[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(); }可以实现给只读字段赋值。但是我的问题又来了,如何给子类的父类的只读字段赋值?谢谢各位!!!!!!
拜托,版主都亲测了,可行 属性也是可以的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;}
调用只读属性的SetValue会抛出异常
字段就不知道了。。你可以试试
属性也是可以的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 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();
}可以实现给只读字段赋值。但是我的问题又来了,如何给子类的父类的只读字段赋值?谢谢各位!!!!!!
属性也是可以的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;}