可能重复:
Can I change a private readonly field in C# using reflection?
我需要修改数据结构类,但数据隐藏在只读属性后面。我可以使用任何技术修改类中的私有变量吗?
如果我能够查看对象并记下我需要的变量的确切字节位置,该怎么办?然后我可以使用不安全的代码直接修改那些偏移量的内存吗?这样的事情可能吗?
答案 0 :(得分:2)
我认为您可以使用Reflection技术来修改实例的变量。这并不难:
typeof(MyClassType).GetField("TheField",BindingFlags.Instance|BindingFlags.NonPublic).SetValue(ClassInstance,NewValue);
请记住包含system.reflection命名空间。