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

本文关键字:属性 取对象 获取 反射 | 更新日期: 2023-09-27 17:56:43

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

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。

感谢帮助。

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

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

你想要GetFieldType().

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