首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过双嵌套类反射获取值

通过双嵌套类反射获取值
EN

Stack Overflow用户
提问于 2015-11-06 01:36:29
回答 1查看 876关注 0票数 2

目前,我正在尝试从嵌套类中获取属性的值。不幸的是,我得到了一个作为object的参数。我知道内部的结构,但我想不出怎样才能深入到物业。

为了便于测试,我准备了几行代码:

代码语言:javascript
运行
复制
namespace ns{
    public class OuterClass{
        public InnerClass ic = new InnerClass();
    }
    public class InnerClass {
        private string test="hello";
        public string Test { get { return test; } }
    }
}

直接调用它很容易:

代码语言:javascript
运行
复制
var oc = new ns.OuterClass();
string test = oc.ic.Test;

但是,当我试图通过反射获取值时,我会遇到System.Reflection.TargetException

代码语言:javascript
运行
复制
object o = new ns.OuterClass();
var ic_field=o.GetType().GetField("ic");
var test_prop = ic_field.FieldType.GetProperty("Test");
string test2 = test_prop.GetValue(???).ToString();

作为GetValue()中的对象,我必须使用什么

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-06 01:39:56

您需要从ic获取FieldInfo的值。

代码语言:javascript
运行
复制
object ic = ic_field.GetValue(o);

然后你把它传递给test_prop.GetValue

代码语言:javascript
运行
复制
string test2 = (string)test_prop.GetValue(ic, null);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33558025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档