使用反射修改属性
2021-05-14 本文已影响0人
不方马斯特
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。