我可以通過(guò)反思設(shè)置私有財(cái)產(chǎn)嗎?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); } }}我已經(jīng)嘗試了以下方法,但它不起作用,其中t表示一種Entity:var t = typeof(Entity);var mi = t.GetMethod("set_CreatedOn", BindingFlags.Instance | BindingFlags.NonPublic);我想我可以做到,但我無(wú)法解決。
3 回答

慕慕森
TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個(gè)贊
t.GetProperty("CreatedOn")
.SetValue(obj, new DateTime(2009, 10, 14), null);
編輯:由于財(cái)產(chǎn)本身是公共的,您顯然不需要使用BindingFlags.NonPublic它來(lái)查找它。SetValue盡管設(shè)置者的可訪(fǎng)問(wèn)性較差,但仍然進(jìn)行呼叫仍會(huì)達(dá)到您的期望。
- 3 回答
- 0 關(guān)注
- 427 瀏覽
添加回答
舉報(bào)
0/150
提交
取消