2016-11-07 42 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 –

相关问题