所以,让我们从代码开始,这样我就能更好地解释自己。我有MyClass类,它包含一个int字段,Foo类也包含MyClass作为字段。我想使用反射从MyClass获取int字段的值。
public class Foo
{
public MyClass myClass;
}
public class MyClass
{
public int Integer = 1;
}
当我使用
时Foo f = new Foo();
foreach(FieldInfo fi in f.GetType().GetFields())
{
//lets say now it enumerating myClass field
foreach(FieldInfo fi2 in fi.FieldType.GetFields())
{
return fi2.GetValue(f); //Here I need to use f.myClass, but I can't
//because it's generic method and I don't know what type I'm currently
//enumerating, so just typing f.myClass won't make it
}
}
问题是我如何获得f.myClass.Integer的价值?
提前谢谢,
保罗
答案 0 :(得分:-1)
在这种情况下你必须使用反射的任何特殊原因?如果您只是想获得该实例方法的值,则可以执行以下操作:
Foo f = new Foo();
var myInt = f.myClass.Integer;