统一访问其他模块的公共字段

时间:2014-07-23 15:11:45

标签: c# reflection unity3d

我试图从Kerbal Space Program的另一个类库(mod)中读取一个字段。我无法直接访问该字段,因为编译器不知道它并且它具有不同的命名空间。

这是我想要访问的字段的来源:

namespace ferram4
{
    public class FARControlSys : FARBaseAerodynamics
    {
        public static double termVel;
    }
}

在运行期间使用反射是否可以做这样的事情?

1 个答案:

答案 0 :(得分:0)

您可以使用GetType获取代表相关类型的Type对象,并传递该类型的assembly-qualified name

获得该类型后,您可以在其上调用GetField以获取相关字段的字段对象,然后您可以使用getset该字段的值FieldInfo的适当方法。

显然,您需要确保执行所有适当的空/失败检查,以处理未加载其他mod的情况(或处理mod最终更改名称的情况)该成员,可能会发生,虽然它可能稍微不太可能,因为该字段不是私人实施细节。)

相关问题