C#Reflection - 获取对象的属性

时间:2016-07-12 20:33:39

标签: c# reflection properties

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

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。

非常感谢帮助。

1 个答案:

答案 0 :(得分:2)

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

您想要dControl

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