0
我想这样做来获得本地路径的值如下:使用反射来得到一个属性的属性
Dim bar As WebProxy = WebProxy.GetDefaultProxy
Dim scriptEngine = bar.GetType().GetProperty("ScriptEngine", Reflection.BindingFlags.NonPublic Or Reflection.BindingFlags.Instance)
Dim acs As PropertyInfo = scriptEngine.PropertyType().GetProperty("AutomaticConfigurationScript", Reflection.BindingFlags.NonPublic Or Reflection.BindingFlags.Instance)
Dim localPath As PropertyInfo = acs.PropertyType().GetProperty("LocalPath", Reflection.BindingFlags.Public Or Reflection.BindingFlags.Instance)
Dim value As String = localPath.GetValue(acs, Nothing).ToString
我敢肯定的是,这里的问题是,我传递一个PropertyInfo对象变成了localPath .GetValue,而不是实际的对象本身。唯一的问题是,我不能投的
Dim acs As PropertyInfo = scriptEngine.PropertyType().GetProperty("AutomaticConfigurationScript", Reflection.BindingFlags.NonPublic Or Reflection.BindingFlags.Instance)
结果成的System.Uri AutomaticConfigurationScript并把它传递,因此我得到一个错误“对象不匹配目标类型”。
任何想法?
P.S我意识到这不是一个C#的问题,但不想限制可能的答案,我已经标记它,因为它是一个.NET的问题,如果我收到答案在C#我可以翻译。
辉煌,感谢里德。我应该知道,但我现在有点时间限制恐慌:) – Ben 2010-10-06 15:00:40
@本:很高兴它有帮助;) – 2010-10-06 15:05:54