2016-11-07 58 views
-3

我是C#的新手,我只是想知道是否有任何方法來訪問getter和setter。C#:有沒有辦法訪問私有getter和setter?

這裏有一個例子代碼:

public class Foo 
{ 
    private AnotherClass _here; 
    private bool Bar 
    { 
    get{return _here.GetAnswer();} 
    set(return _here.SetAnswer(value);) 
    } 
} 

據我所知,有在C#中的反射功能,但據我已閱讀,它只做私有變量。

而且,我一直在嘗試此代碼:

public void func() 
{ 

    MethodInfo privMethod = Foo.GetType(). 
         GetMethod("Bar", BindingFlags.NonPublic | BindingFlags.Instance); 

    object fff = privMethod.Invoke(); 

} 

但它是行不通的。

任何人都可以幫助我嗎?

+3

是的。反射。你在哪裏讀到它只是私有變量?這不是真的。不要相信你在互聯網上閱讀的隨機廢話。用MSDN確認。 –

+1

https://stackoverflow.com/questions/9219261/is-it-possible-to-get-a-propertys-private-setter-through-reflection –

回答

1
PropertyInfo property = typeof(Foo).GetProperty("Bar", BindingFlags.Instance | BindingFlags.NonPublic); 
MethodInfo getMethod = property.GetGetMethod(true); 
MethodInfo setMethod = property.GetSetMethod(true); 
+0

謝謝!我正在尋找這個答案! @Yarik –

相關問題