规范模式 - 使用 lambda 创建复合规范 (C#)
如果我有一个定义为表达式的规范,如下所示:
public Expression<Func<Foo, bool>> IsSuperhuman =
x => x.CanFly && x.HasXRayVision;
并且我想定义另一个规范“IsSuperheroine”,逻辑为“是超人并且是女性”,我如何在新规范中重用现有规范?
If I have a specification defined as an Expression as below:
public Expression<Func<Foo, bool>> IsSuperhuman =
x => x.CanFly && x.HasXRayVision;
And I want to define another specification 'IsSuperheroine' with the logic 'is superhuman and is female', how can I reuse the existing specification within the new one?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您是否检查过 LinqKit 中的 谓词构建器?它通过将 you 和 和 or 表达式放在一起来构建表达式。
Have you checked out predicate builder in LinqKit? It builds up expressions by letting you and and or expressions together.
这是一种方法:
这可能不是最简单的方法,但它有效......
Here's a way to do it :
It is probably not the simplest way to do it, but it works...