c# - 面向对象与基于参数的 WCF 调用?

标签 c# wcf oop

不久前,我开始了一份新工作,他们一直使用 WCF 来处理 UI 和后端之间的所有数据/业务逻辑,这非常棒。

我注意到,绝大多数 WCF 服务调用都包含各种参数。例如,假设您有一个名为 GetFoo 的服务调用。这里我们可能会使用如下签名:

public Foo GetFoo(int? ID, string Name, DateTime? fooDate)

对于更面向对象的方法,您可以使用:

public Foo GetFoo(Foo foo)

在这种情况下,代码从 Foo POCO 对象中获取所需的内容,而不是依赖于从 UI 传入的一组特定参数。

一方面,这在 UI 和 WCF 服务之间提供了更灵活的契约。我们可以在服务端对实现进行更改,而无需破坏任何契约(Contract)和更新引用。此外,我们可以让业务对象直接作用于 POCO,而不是处理显式参数列表。

另一方面,尚不清楚需要什么才能获取您想要的对象/数据。

哪种方法被认为是最佳实践?

最佳答案

我总是选择单个参数输入和输出。该参数定义了我期望的数据的消息(或至少是消息正文),而返回定义了我要发回的消息正文

如果使用多个参数,您几乎无法控制消息在网络上的外观。

契约操作是 .NET 方法这一事实是一个实现细节。合约的目标是定义消费者和服务之间的消息结构。

关于c# - 面向对象与基于参数的 WCF 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10598529/

相关文章:

c# run方法来自抽象和继承者的单个实例

python - 使用哪个 : self or super?

python - 父访问在 Python 中子定义的类变量?

c# - 如何在页面最底部注册ClientScript

c# - 套接字,Nullreference异常

.net - Web 服务中的异常(exception)

java - 对于java应用程序的web服务,apache或tomcat apache哪个更好?

c# - 如何使用选定的特定文件打开资源管理器?

C# 获取两个 DateTime 日期之间的差异

wcf - MVC 中的消息传递工作流