0

我正在创建一个规则验证类 - 没什么特别的。

我想设置这样的属性:

public int MaxLoanAmount { get; set; }

数据将像这样进行验证。_app 指的是通过构造函数注入的数据。

bool MaxLoanAmountValid
{
   get { return _app.LoanAmount >= MaxLoanAmount; }
}

我可以构建一些 if 逻辑来测试是否设置了我的每个属性,验证它们并返回结果,但是我想尝试比这更聪明一点。

我想知道是否可以构建动态表达式,所以当设置 MaxLoanAmount 时,我添加“MaxLoanAmountValid”,等等“MaxLoanAmountValid AND MinLoanAmountValid”等。

提前致谢。

4

1 回答 1

0

是的,您可以使用 .NET API 或使工作更轻松的几个免费工具之一动态构建 Linq 表达式树。有些可以将字符串解析为表达式,因此您所要做的就是构建字符串。请参阅几乎相同问题的答案中的链接:动态构建 Linq Lambda 表达式

如果您想更“聪明”,您可以使用这样的反射在其 Set 方法中动态获取当前属性名称MethodBase.GetCurrentMethod().Name

于 2013-05-19T19:14:41.867 回答