我有一个类的实例,我想改变这个实例的目的数据成员仅具有相同类型(交换)时,由于我的系统约束我不能使用=,新的或设定器运营商的另一目的.
基本上我想改变一个变量字段的值,该字段是另一个对象中包含的对象 - 我的实例所拥有的变量.
是否有可能使用反射?若有人可以请给我基本指示?
谢谢Yoav
Kev*_*ose 13
是的,它可能.
简而言之,做点什么
Type typeInQuestion = typeof(TypeHidingTheField);
FieldInfo field = typeInQuestion.GetField("FieldName", BindingFlags.NonPublic | BindingFlags.Instance);
field.SetValue(instanceOfObject, newValue);
Run Code Online (Sandbox Code Playgroud)
更改隐藏(私有/受保护/内部)字段的值.使用相应FieldInfo.GetValue(...)
的阅读; 将这两者简单地结合起来,以获得所需的交换操作.
不要把我抱到BindingFlags(我似乎总是在第一次尝试时弄错了)或确切的语法,但基本上就是这样.
查看System.Reflection以供参考.
归档时间: |
|
查看次数: |
12885 次 |
最近记录: |