我试图从Kerbal Space Program的另一个类库(mod)中读取一个字段。我无法直接访问该字段,因为编译器不知道它并且它具有不同的命名空间。
这是我想要访问的字段的来源:
namespace ferram4
{
public class FARControlSys : FARBaseAerodynamics
{
public static double termVel;
}
}
在运行期间使用反射是否可以做这样的事情?
答案 0 :(得分:0)
您可以使用GetType
获取代表相关类型的Type
对象,并传递该类型的assembly-qualified name。
获得该类型后,您可以在其上调用GetField
以获取相关字段的字段对象,然后您可以使用get或set该字段的值FieldInfo
的适当方法。
显然,您需要确保执行所有适当的空/失败检查,以处理未加载其他mod的情况(或处理mod最终更改名称的情况)该成员,可能会发生,虽然它可能稍微不太可能,因为该字段不是私人实施细节。)