使用反射修改属性

public class TestClass
{
    public int valueA;
    public int valueB { get; set; }
}

以TestClass为例,首先需要获取对应的属性。

    TestClass testClass = new TestClass();
    var type = testClass.GetType();
    var infoA = type.GetField("valueA");
    var infoB = type.GetProperty("valueB");

valueA是字段,valueB是属性,获取的方式不同。

    if (valueA != null)
    {
        object a = valueA.GetValue(testClass);
        var type = a.GetType();
        string input = "123";
        try{
            valueA.SetValue(testClass, Convert.ChangeType(input,type));
        }catch{
            
        }
    }

获取值用GetValue,设置值用SetValue。

你可能感兴趣的:(使用反射修改属性)