c# - Get private property of a private property using reflection -
public class foo {     private bar foobar {get;set;}      private class bar     {         private string str {get;set;}         public bar() {str = "some value";}     }  } if i've got above , have reference foo, how can use reflection value str out foo's foobar? know there's no actual reason ever (or very few ways), figure there has way , can't figure out how accomplish it.
edited because asked wrong question in body differs correct question in title
you can use getproperty method along nonpublic , instance binding flags.
assuming have instance of foo, f:
propertyinfo prop =     typeof(foo).getproperty("foobar", bindingflags.nonpublic | bindingflags.instance);  methodinfo getter = prop.getgetmethod(nonpublic: true); object bar = getter.invoke(f, null); update:
if want access str property, same thing on bar object that's retrieved:
propertyinfo strproperty =      bar.gettype().getproperty("str", bindingflags.nonpublic | bindingflags.instance);  methodinfo strgetter = strproperty.getgetmethod(nonpublic: true);  string val = (string)strgetter.invoke(bar, null); 
Comments
Post a Comment