2016-07-12 6 views
0

クラスのオブジェクトのプロパティを設定しようとしていますが、プロパティを取得できません。ただし、nullを返しますC#Reflection - オブジェクトのプロパティを取得

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。

これは、私がアクセスしようとしている性質である:それが重要ならば

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

クラスは、DLLとして保存されます。

お手数ですが、

+1

あなたは現在値を設定しようとしています(あなたは 'SetValue'を呼び出しています)、あなたはセッターを表示していません... [mcve]を表示すると本当に役に立ちます。 –

答えて

2

dControl.GetType()System.Reflection.FieldInfoの型を返します。それはdControlです。

あなたはGetFieldType()が必要です。

同様に、SetValue()に渡すインスタンスが必要です。

関連する問題