无法使用反射设置属性

本文关键字:设置 属性 反射 | 更新日期: 2023-09-27 18:25:24

我正在创建一个动态类,并使用反射来分配属性值,该类有两个属性

public int Tipo_Pension {set;get;}
public bool Novedad_TDP {set;get;}

我使用下面的代码来设置这些值。VariableName是属性的名称,Value是要设置的属性的实际值,ruleMeta.Evaluator是绑定器。

private void SetVariable(string VariableName, object Value, RuleMeta ruleMeta)
{
    o = ruleMeta.EvaluatorType.InvokeMember(
        VariableName,
        BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetProperty,
        Type.DefaultBinder,
        ruleMeta.Evaluator,
        new object[] { Value }
    );
}

第一个属性Integer运行良好,但当为布尔值执行时,它失败并引发下一个错误

Method 'Cenet.RulesManager.Rule360788846.Novedad_TDP' not found

知道会发生什么吗?

注意:布尔值的对象值是一个字符串:"false"

无法使用反射设置属性

正如M.kazem Akhgary发布的那样,我用一个字符串设置了bool,就这么简单。