c# - 不确定如何使用 Web 服务发送复杂数据

标签 c# .net web-services

我已经查看了网站上的很多问题,但我仍然无法完全理解从哪里开始。

我以前从未对网络服务做过任何事情,所以请耐心等待。

我目前分配的项目是编写一个查询数据库并将数据返回给客户端的网络服务。 (在 C# 中使用 .NET 2008 编程)

到目前为止,我已经能够毫无问题地处理基本数据类型,但我不是 100% 确定从那里去哪里。我一直在返回 XmlDocument 类型,但我不确定这是最好的方法,甚至是正确的方法。

目前正在创建 ASP.NET Web 服务,尽管有人建议我使用 WCF Web 服务。

谁能阐明从这里到哪里去?或者可能是指向有关通过网络服务发送和接收大量数据的教程的链接?

编辑:到目前为止,答案都很好,但我仍然不是 100% 确定如何回答。我认为 web 服务将与客户端程序的组合进行交互,但也与网站交互,如果这一切都可能的话……这就是我对此的新手。

最佳答案

根据您发送回客户端的数据结构,我不建议使用 XmlDocument 作为返回类型。这会给您的回复增加很多不必要的内容。

您确实没有说明您想要支持的协议(protocol),但是如果您通过 HTTP 传输数据,那么将您的数据作为 JSON 格式的字符串发送回客户端会更好地简化它。

您可以像这样定义您要返回格式化为 JSON 的复杂类型:

[WebGet(ResponseFormat=WebMessageFormat.Json, UriTemplate="GetComplexObject/{id}")]
public MyComplexType GetComplexObject(int id){
  //do work to get your object
  return myObject;
}

如果 MyComplexType 被定义为 DataContract...,WCF 将负责将您的对象序列化为 JSON...

[DataContract]
public class MyComplexType{
  [DataMember]
  String Name {get;set;}
}

如果您正在寻找 REST-ful 服务,那么 WCF 可能是使用 WebHttp 功能的首选方法。

WCF 团队整理了一个 great series关于使用 WCF WebHttp(.NET 4 的新功能)的演练。他们假定您对 Web http 编程有一点了解,但他们非常好,希望能帮助您走上正轨。

希望对您有所帮助!!祝你好运。

关于c# - 不确定如何使用 Web 服务发送复杂数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5275573/

相关文章:

c# - 如何手动创建深拷贝

c# - 获取当前 Windows 用户——不是当前用户运行的进程

.net - 构建具有集成安全性的 SQL 连接字符串以通过 VPN 使用?

c# - Azure 中的 Machine.config 替代方案

web-services - 如何向负载均衡的 HTTP Web 服务添加持久连接支持

android - Android 和 iOS 应用程序的后端

c# - 在 XML 序列化期间忽略属性 XmlNamespaceDeclarations

c# - 如何使用 C# 将 Windows 系统时钟设置为正确的本地时间?

c# - Windows Azure 服务总线 - 一般问题

c# - 使用 agility pack C# 处理 cookie 和 header