0

我目前正在将 Unity 游戏移植到 WinRT/通用 Windows 平台 (UWP) 或您现在所称的任何内容。我的游戏使用了资产商店中的一个插件,该插件大量使用反射,并且我遇到属性 FieldInfo.FieldHandle 不存在的问题。

例如,这是一个使用 FieldHandle 属性的方法

public void InitFromComponent(Component component)
{
    m_ComponentType = component.GetType();

    m_Fields.Clear();

    foreach (FieldInfo f in m_ComponentType.GetFields())
    {
        if (f.IsPublic)
        {
            if (f.FieldType == typeof(float)
            || f.FieldType == typeof(Vector4)
            || f.FieldType == typeof(Vector3)
            || f.FieldType == typeof(Vector2)
            || f.FieldType == typeof(int)
            || f.FieldType == typeof(bool)
            || f.FieldType == typeof(string))
            {
                m_Fields.Add(new Field(f.FieldHandle, f.GetValue(component)));
            }
        }
    }
}

public Field(RuntimeFieldHandle fieldHandle, object args)
{
    FieldHandle = fieldHandle;
    Args = args;
}

那么有没有办法在 WinRT 上获取 RuntimeFieldHandle?

4

0 回答 0