ASP.NET WebService 支持绝大多数的基元类型及其数组,另外还支持自定义的结构(Struct)、类型(Class)、枚举(Enum)、DataSet、XmlElement、XmlNode、集合(IEnumerable/ICollection)等。
ASP.NET WebService 使用 XmlSerializer 进行序列化操作,对于自定义类型要注意以下几点:
1. 只能序列化可读写公共属性和字段。只读属性(get;)、只读字段(readonly)、常量(const)以及所有的非 public 数据成员都不会被序列化。
2. 自定义类型必须具有不接受任何参数的默认构造函数。
3. 不能序列化方法。客户端生成的代理对象不包含任何自定义类型方法(不是WebMethod)。
基于以上几点,因此我们最好只定义纯粹用来传输复合数据的数据类型(Data Object)。
以下是一些演示代码。
基元类型[WebService(Namespace = "http://www.rainsts.net/", Description="我的Web服务")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WebService : System.Web.Services.WebService {
public WebService () {
}
[WebMethod]
public DateTime GetNowTime()
{
return DateTime.Now;
}
[WebMethod]
public string[] GetStringArray()
{
return new string[] { "a", "b", "c"};
}
[WebMethod]
public float[] GetFloatArray()
{
return new float[]{1F, 2F, 3F};
}
[WebMethod]
public byte[] GetBytes()
{
return System.IO.File.ReadAllBytes(@"c:\windows\notepad.exe");
}
}
枚举 Enumpublic enum Sex
{
Female,
Male
}
[WebService(Namespace = "http://www.rainsts.net/", Description="我的Web服务")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WebService : System.Web.Services.WebService {
public WebService () {
}
[WebMethod]
public Sex GetSex()
{
return Sex.Female;
}
[WebMethod]
public Sex[] GetAllSex()
{
return Enum.GetValues(typeof(Sex)) as Sex[];
}
}
结构 Struct 结构体默认就会创建无参数构造方法,且不允许自定义。
public struct MyStruct
{
public int X;
public int Y;
public MyStruct(int x, int y)
{
this.X = x;
this.Y = y;
}
}
[WebService(Namespace = "http://www.rainsts.net/", Description="我的Web服务")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WebService : System.Web.Services.WebService {
public WebService () {
}
[WebMethod]
public MyStruct GetMyStruct()
{
MyStruct st = new MyStruct(15, 16);
return st;
}
[WebMethod]
public MyStruct[] GetMyStructs()
{
return new MyStruct[] { new MyStruct(1, 2), new MyStruct(3, 4) }; ;
}
}
类型 Classpublic struct MyStruct
{
public int X;
public int Y;
public MyStruct(int x, int y)
{
this.X = x;
this.Y = y;
}
}
public class MyClass
{
public MyClass()
{
myStruct = new MyStruct();
}
public MyClass(int x, int y, string name) : this()
{
myStruct.X = x;
myStruct.Y = y;
this.name = name;
}
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
private MyStruct myStruct;
public MyStruct MyStruct
{
get { return myStruct; }
set { myStruct = value; }
}
public void Test() // 客户端代理不会生成该方法。
{
Console.WriteLine(name);
}
}
[WebService(Namespace = "http://www.rainsts.net/", Description="我的Web服务")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WebService : System.Web.Services.WebService {
public WebService () {
}
[WebMethod]
public MyClass GetMyClass()
{
return new MyClass(1, 2, "name1");
}
[WebMethod]
public MyClass[] GetMyClassArray()
{
return new MyClass[] { new MyClass(1, 2, "name1"), new MyClass(2, 3, "name2") }; ;
}
}
有关数据类型的更详细信息,请查看 MSDN 文档。
ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_fxwebservices/html/70567d9f-6e53-42a8-bbd5-aee42b25dd28.htm
分享到:
相关推荐
《Java Web Services: Up and Running》是一本专为开发者深入理解并实践Java Web服务技术而编写的指南。这本书详尽地介绍了如何构建、部署和运行Java Web服务,旨在帮助读者快速掌握这一领域的核心概念和技术。 ...
在Java平台上,Spring框架也提供了强大的Web Services支持。Spring Web Services项目专注于基于合同优先的Web Services开发,强调使用WSDL来定义服务契约,然后自动生成服务实现。此外,Spring还提供了对WS-Security...
Java Web Services 是一种利用 Java 技术开发网络服务的方式,它使得不同系统之间能够通过互联网进行数据交换和功能调用。这个教程将深入讲解 Java Web Services 的核心概念和技术,帮助开发者理解如何创建、部署和...
Web Services是一种基于网络的、平台无关的交互方式,它允许不同系统之间交换数据和服务。在.NET框架下,创建和使用Web Services相对简单,这得益于微软提供的强大支持。本篇文章将深入探讨.NET环境下Web Services的...
1. **RESTful Web Services 模块**:这是 Drupal 中最常用的用于实现 RESTful API 的模块之一。通过这个模块,开发者可以轻松地定义哪些内容类型、视图或者其他资源可以通过 API 访问,并指定它们支持的请求方法...
由于内部实现完全独立,Web Services可以处理各种类型的请求,而这些请求的处理方式取决于所使用的通信协议和数据格式。 【CGI、CORBA与SOAP】 早期的Web Services实现中,CGI(Common Gateway Interface)是一种...
在IT领域,尤其是在企业级应用的安全管理中,Oracle Web Services Manager (OWSM)扮演着至关重要的角色。根据给定文件的标题与描述“Oracle Web Services Manager: Securing your Web Services”,我们可以深入探讨...
Web Services是一种基于Web的应用程序接口(API),它允许不同系统之间进行数据交换和服务交互。Web Services的设计目标是为了实现不同应用程序之间的互操作性,尤其是在异构环境下。 #### 五、Web Services关键技术 ...
### 金蝶K/3基于WebServices外部数据交换接口使用指南 #### 概述与目的 随着企业信息化水平的不断提高,各类业务系统如ERP、CRM、OA等在组织内部的应用日益广泛,这些系统往往需要跨不同的平台运行。为了实现不同...
首先,了解Java Web Services的基础,我们需要知道SOAP,它是用于在分布式环境中交换结构化和类型化信息的协议。SOAP消息通常以XML格式封装,可以承载任何类型的数据,并通过HTTP或SMTP等传输协议发送。在Java中,...
本文介绍了 Web 服务的基本概念和技术,包括 Web 服务的历史背景、多层架构的优势、SOAP 协议的工作原理、WSDL 的结构和用途、示例 Web 服务的开发流程,以及如何使用 Apache CXF 和不同类型的服务器部署 Web 服务。...
这个“webservices例子”是一个使用Axis2框架进行Web服务应用测试的小实例。让我们深入探讨一下Web服务和Axis2框架的相关知识点。 1. Web服务基础: - **SOAP(Simple Object Access Protocol)**:Web服务通常...
#### 二、Java 中配置 Web Services 的步骤 根据描述和部分内容来看,本文主要介绍如何在 Java 环境下配置并实现一个简单的 Web Service。这里我们将详细介绍整个配置流程,并对关键步骤进行深入解析。 ##### 1. ...
Web Services技术是一种基于互联网的,以XML(可扩展标记语言)为核心的数据交换和通信机制,旨在促进不同系统之间的互操作性和应用程序集成。它允许不同平台、操作系统和编程语言的软件组件通过网络进行通信,实现...
5. **使用合适的数据格式**:RESTful Web Services 通常使用 JSON 或 XML 来交换数据。JSON 因其简洁和易于解析而更受欢迎。 6. **实现安全性**:确保 RESTful Web Services 的安全性是非常重要的。可以采用诸如 ...
2. **数据结构定义**:医院对码信息可能涉及多种数据类型,如病人信息、药品编码、疾病诊断代码等。在PB9中,需要定义相应的数据结构(structures)来匹配这些信息,以便于数据的封装和解封。 3. **调用Web方法**:...
在当今互联网时代,Web服务已经成为企业级应用间交互的重要方式,Java API为开发这些服务提供了强大的支持。本电子书将带你探索Java在构建Web服务领域的核心技术和实践方法。 首先,书中会详细讲解SOAP(Simple ...
3. **部署Web服务**:完成服务的编写后,将其部署到IIS(Internet Information Services)服务器或者任何支持ASP.NET的应用服务器上,使其可供网络访问。 4. **测试Web服务**:部署后,可以通过浏览器访问服务的URL...