将 lambda 表达式转换为字符串
这似乎是一个奇怪的请求,但是对于需要过滤器属性字符串的 API,我认为能够转换提供的类型安全 lambda 表达式,然后将其编译为查询字符串,这将是一个很好的概念 - 本质上类似于林克-> SQL。
例如:
Func<TQueryObj, bool>
(invoice) => { invoice.Status == "DRAFT" && invoice.Type == "ACCREF" };
将转换为
Status=="DRAFT" && Type=="ACCREF"
我目前正在使用发票 API,因此是示例。有什么方法可以相当简单地实现这一目标吗?
干杯
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要创建一个继承的
ExpressionVisitor
,它将递归地爬取Expression>
。这并不容易。
You need to make an inherited
ExpressionVisitor
, which will recursively crawl through anExpression<Func<...>>
.It won't be easy.