我正在创建一个动态类并使用反射来分配属性值,该类有两个属性
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”
答案 0 :(得分:0)
正如M.kazem Akhgary发布的那样,我用一个字符串设置bool,就像那样简单。