通过字符串名称访问属性

时间:2012-10-08 17:10:14

标签: c# properties

  

可能重复:
  How to set object property through Reflection

如果我有以下程序:

public class MyClass
{
    public int MyIntProp {
        get;
        set;
    }
    public string MyStringProp {
        get;
        set;
    }
}

public class MyMainClass
{
    private const string PropertyName = "MyIntProp";
    private MyClass _myClass;

    public MyMainClass()
    {
        _myClass = new MyClass();
        // _myClass.PropertyName = 5;
    }
}

我想要做的是能够为5属性分配MyIntProp的值。是否可以使用字符串名称执行此操作?我虽然在使用LINQ之前看到过这样的事情,但我似乎无法记住语法或我在哪里找到它。

1 个答案:

答案 0 :(得分:3)

您可以使用GetProperty方法使用反射:

 typeof(MyClass).GetProperty(PropertyName).SetValue(_myClass, 5);