2015-07-21 23 views
-3
class mapper 
{ 
    List<int> l; 
    static Dictionary<string, string> LEGEND = new Dictionary<string, string>(){{"list1", "My_FanCyUGLY_N4MEDlst777"}} 
    public mapper(MainWindow w) 
    { 
     l = w.(LEGEND["list1"]); //how to get this refference? 
    } 
} 

换句话说,我想获得对字段(或方法,属性等)的引用,这些名称直到运行时我才知道。我知道我可以获得该领域的价值,但那不是我想要的。这是可能的和如何做到这一点?通过C#中的反射获取对某些类字段的引用

+2

使用谷歌搜索“通过C#中的反射获得对某些类字段的引用”,第一个结果就是这个问题的答案。 – Amy

+0

是的,正是这个问题,我在这里问...在第一页没有任何有用的,虽然 – csharpcsharp

回答

0

您可以使用FieldInfo fi = typeof(MainWindow).GetField("fieldname");获取FieldInfo对象。然后致电fi.GetValue(w);以获取价值。同样的原则适用于各种成员和他们的操作。

这在运行时很慢,并且在编译时很难发现错误,所以请确保您有一个非常好的理由在这里使用反射!

+0

我记得前一段时间做类似的事情,但我的主要问题是领域。有趣的是,如果可以通过这种方式调用属性/方法来获得参考,作为解决方法 – csharpcsharp

+0

对不起,我一定误解了这个问题。更新了字段并添加了关于这类操作的一般声明。 – 31eee384

+0

还是不是这样:)对不起,如果我错了,但我很确定这会得到这些字段的值。我想要参考那些。 – csharpcsharp

相关问题