C# 反射 - 获取对象的属性



>我正在尝试在类中设置对象的属性,但我无法获取该属性。

FieldInfo dControl = window.GetType().GetField("dControl", BindingFlags.NonPublic | BindingFlags.Instance);
if (dControl == null) { Debug.Log ("dControl is null"); return;}
PropertyInfo inPreviewMode = dControl.GetType().GetProperty("InPreviewMode", BindingFlags.Public | BindingFlags.Instance);
if (inPreviewMode == null) { Debug.Log ("dControl.InPreviewMode is null"); return;}
inPreviewMode.SetValue(dControl, false, null);

但是,inPreviewMode 返回 null。

这是我尝试访问的属性:

public class DControl : TimeArea
{
    public bool InPreviewMode
    {
        get
        {
            return dState.IsInPreviewMode;
        }
        ...
    }
    ...
}

如果这很重要,该类将存储为 dll。

感谢帮助。

dControl.GetType()返回System.Reflection.FieldInfo的类型,因为这就是dControl

你想要GetFieldType().

同样,您需要一个实例传递给 SetValue()

相关内容

  • 没有找到相关文章

最新更新