如何在.NET Core上的动态表达构建器中转换为适当的数据类型?
我有以下代码通过动态表达式处理过滤器。但是,如果数据类型是字符串,则可以正常工作,如果是号码或日期,我不知道该如何处理。.有人可以帮助
MemberExpression member = Expression.Property(param, filter.Name);
var propertyType = ((PropertyInfo)member.Member).PropertyType;
var converter = TypeDescriptor.GetConverter(propertyType);
filter.Value.Aggregate(
(Expression)Expression.Constant(false),
(acc, next) =>
Expression.MakeBinary(
ExpressionType.Or,
acc, Expression.Equal(member, Expression.Constant(next))));
有效负载
{
"pageFilters": [
{
"name": "firstName",
"condition": "Equals",
"value": [
"john", "sam"
]
}
]
}
{
"pageFilters": [
{
"name": "age",
"condition": "Equals",
"value": [
"30", "40" --> tried "value":[30,40] as well
]
}
]
}
I have the below code which handles filters by dynamic expressions. This works fine if the datatype is string, however, if it is number or date, i don't know how to handle that.. can someone please help
MemberExpression member = Expression.Property(param, filter.Name);
var propertyType = ((PropertyInfo)member.Member).PropertyType;
var converter = TypeDescriptor.GetConverter(propertyType);
filter.Value.Aggregate(
(Expression)Expression.Constant(false),
(acc, next) =>
Expression.MakeBinary(
ExpressionType.Or,
acc, Expression.Equal(member, Expression.Constant(next))));
Payload
{
"pageFilters": [
{
"name": "firstName",
"condition": "Equals",
"value": [
"john", "sam"
]
}
]
}
{
"pageFilters": [
{
"name": "age",
"condition": "Equals",
"value": [
"30", "40" --> tried "value":[30,40] as well
]
}
]
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论