2016-07-12 20 views
0

Ich versuche, eine Eigenschaft eines Objekts in einer Klasse festzulegen, aber ich kann die Eigenschaft nicht abrufen.C# Reflektion - Get-Eigenschaft eines Objekts

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 gibt null zurück, jedoch.

Dies ist die Eigenschaft ich zugreifen möchten:

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

Die Klasse als DLL gespeichert wird, wenn es ankommt.

Hilfe ist willkommen.

+1

Nun, Sie versuchen gerade, * den Wert * einzustellen (Sie nennen 'SetValue') und Sie haben keinen Setter gezeigt ... es würde wirklich helfen, wenn Sie ein [mcve] zeigen würden. –

Antwort

2

dControl.GetType() gibt den Typ für System.Reflection.FieldInfo zurück, da das dControl ist.

Sie möchten GetFieldType().

Ebenso müssen Sie eine Instanz an SetValue() übergeben.

Verwandte Themen