有没有办法通过反射从已知类中获取私有静态字段的值?
是.
Type type = typeof(TheClass); FieldInfo info = type.GetField(name, BindingFlags.NonPublic | BindingFlags.Static); object value = info.GetValue(null);
这是一个领域.对于房产,请更改type.GetField
为type.GetProperty
.您也可以以类似的方式访问私有方法.
我想有人应该问这是不是一个好主意?它创建了对此静态类的私有实现的依赖.私有实施可能会发生变化,而不会通知使用Reflection访问私有实施的人员.
如果这两个类要一起工作,请考虑将该字段设置为内部并在[assembly:InternalsVisibleTo]属性中添加协作类的程序集.