【问题标题】:WCF and Data Transfer ObjectWCF 和数据传输对象
【发布时间】:2025-12-11 05:10:02
【问题描述】:

我被这个简单的问题困住了。在我的控制台应用程序中,我想使用 wcf 服务。所以我将网络引用添加到项目并调用它。就是这样。

但为什么我看到了一些特别是使用 RESTSHARP 的示例,它们从不添加 Web 参考。他们只是使用所谓的“DTO”通过服务返回对象并使用它。

我希望有人可以为我澄清这些概念。 DTO 是否在 WCF 内部使用?

样本:

private static List<ApplicationDTO> features;
RestClient client = new RestClient("http://" + baseUrl + "/FacilityData.svc");
var request = new RestRequest(Method.GET);
request.Resource = "/GetFeatures";
request.Parameters.Clear();
request.AddParameter("Id", 888);
var response = client.Execute(request);
features = JsonConvert.DeserializeObject<List<ApplicationDTO>>(response.Content);

【问题讨论】:

  • 我通过这个链接理解了这个概念:DTO & POCO

标签: wcf dto restsharp


【解决方案1】:

来自this 发帖:

对于 REST 服务,它提供了一种通用的 WCF 服务消费方式 它不依赖于 SOAP。 这就是为什么我们不再需要“添加 ServiceReference..." 用于使用它。 REST 服务操作可以是 通过标准 HTTP GET/POST 请求访问,因此任何 webrequest 启用的客户端可以使用它。例如,您可以使用 HttpWebRequest 调用 REST 操作并使用 LINQ to XML 加载和提取 来自响应 XML 数据的值。它非常灵活。

DTO,通常用于数据传输对象 - 只不过是您想要作为参数传递/作为结果接收的实体。

在您的示例中,ApplicationDTO - 可能是一些实体,用于保存有关应用程序功能对象(名称、类型、...)的数据

【讨论】:

  • 从您提供的链接中,我们可以说有两种方式可以使用 REST 服务吗?一种是通过 HTTP GET/POST 请求,另一种是通过工厂通道?关于DTO,我还是没看懂,你的意思是WCF中用来传递参数/实体的吗?
  • 通常,是的 - DTO 是为您的业务对象(学生、教室、... ...)