我可以通過反思設(shè)置私有財產(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);我想我可以做到,但我無法解決。
3 回答

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