如何将匿名委托传递给webapi/service

本文关键字:webapi service | 更新日期: 2023-09-27 18:03:30

我们有两个服务,如业务逻辑层即服务(WEBAPI)和DAL即服务(WEBAPI)。我们有客户端与业务层交互,业务层与数据层(服务)交互。我们的DAL是模式独立的,并且DAL层不包含DTO实体(类)。DAL从数据读取器获取数据并转换为Expando对象并返回给BLL, BLL层将接收到的Expando对象转换为DTO对象。如果数据很小(小于500K),这种方法可以很好地工作,但由于大小或超时等原因,这种方法会失败。所以我在想是否有一种方法可以将func<>或委托从BLL层传递到DAL服务层,这个func<>将在DAL层被评估,我将通过我的匿名委托/func<>传递我的转换逻辑到实体以及一些逻辑。我的问题是架构上这可能不是最好的方法,但我想知道是否有一种方法传递委托参数到另一个服务,并在该服务上下文中执行该委托。

如何将匿名委托传递给webapi/service

你不能跨WebAPI原生支持的任何格式传递委托。可执行代码很难移植到另一台机器上。

你需要用其他方法解决这个问题。也许你可以使用字符串来识别方法。"FilterByGoldCustomerStatus"),并让服务器解释该字符串。

从你给出的架构草图来看,我不清楚为什么你需要用基于HTTP的协议将DAL和BLL分开。也许你的DAL应该只是一个DLL, BLL使用?然后,您可以轻松地传递委托和表达式树。

坦率地说,架构看起来相当复杂(许多层、RPC边界、扩展等等)。就不能用更简单的方法吗?

这个问题还没有答案。我有同样的问题,委托需要从UI传递到BL。假设剑道网格分组,过滤,排序等,你不想从DL获取所有数据并将其传递给BL,然后将其传递给UI(服务器端),并在那里做所需的操作。另外,由于没有指定此需求并且是客户端需求,因此您不能为此目的创建修复查询。因为可能的组合太多了。在性能和关注点分离方面,什么是正确的体系结构?