我可以通过反思设置私有财产吗?public abstract class Entity{ private int _id; private DateTime? _createdOn; public virtual T Id { get { return _id; } private set { ChangePropertyAndNotify(ref _id, value, x => Id); } } public virtual DateTime? CreatedOn { get { return _createdOn; } private set { ChangePropertyAndNotify(ref _createdOn, value, x => CreatedOn); } }}我已经尝试了以下方法,但它不起作用,其中t表示一种Entity:var t = typeof(Entity);var mi = t.GetMethod("set_CreatedOn", BindingFlags.Instance | BindingFlags.NonPublic);我想我可以做到,但我无法解决。
3 回答
慕慕森
TA贡献1856条经验 获得超17个赞
t.GetProperty("CreatedOn")
.SetValue(obj, new DateTime(2009, 10, 14), null);
编辑:由于财产本身是公共的,您显然不需要使用BindingFlags.NonPublic它来查找它。SetValue尽管设置者的可访问性较差,但仍然进行呼叫仍会达到您的期望。
- 3 回答
- 0 关注
- 383 浏览
添加回答
举报
0/150
提交
取消