明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

ASP.NET創(chuàng)建XML Web服務(wù)全接觸(4)

[摘要]聲明一個XML Web服務(wù)  當(dāng)你使用ASP.NET創(chuàng)建一個XML Web服務(wù)時,你要把所需的@_WebService指令放到.asmx文件的最頂端。.asmx文件的存在和@_ WebService指令與所實現(xiàn)的XML Web服務(wù)的URL地址相關(guān)。接下來,你實現(xiàn)XML Web服務(wù)類來定義XML W...

    

  聲明一個XML Web服務(wù)

  當(dāng)你使用ASP.NET創(chuàng)建一個XML Web服務(wù)時,你要把所需的@_WebService指令放到.asmx文件的最頂端。.asmx文件的存在和@_ WebService指令與所實現(xiàn)的XML Web服務(wù)的URL地址相關(guān)。接下來,你實現(xiàn)XML Web服務(wù)類來定義XML Web服務(wù)客戶端可見的方法和數(shù)據(jù)類型。最后,你把你的XML Web服務(wù)邏輯添加到那些方法上,以便處理XML Web服務(wù)請求和返回的響應(yīng)。你定義的XML Web服務(wù)類可以直接被包含在.asmx文件中,也可以包含在一個單獨的文件中。如果你使用一個獨立的文件,它必須被編譯為二進(jìn)制碼。你可以選擇應(yīng)用一個WebService屬性到這個類上,來實現(xiàn)XML Web服務(wù)。實現(xiàn)XML Web服務(wù)的類可以繼承于WebService類。

  聲明一個XML Web服務(wù),這個服務(wù)的實現(xiàn)存在于同一個文件。

  添加一個@_WebService指令到一個.asmx文件的頂部,規(guī)定在這個實現(xiàn)中實現(xiàn)XML Web服務(wù)的類和程序語言。

  Class屬性可以被設(shè)置為和@_WebService指令同一個匯編文件,或者是單獨匯編文件中的一個類。如果這個類存在于一個獨立匯編文件中,它必須放在XML Web服務(wù)所在的Web應(yīng)用程序目錄下的\Bin目錄中。Language屬性可以設(shè)置為C#、VB和JS,分別表示C#、Visual Basic.NET和JScript.NET。

  下列代碼示例設(shè)置@_ WebService指令的Language屬性為C#,Class屬性為MyMath,保存在同一個文件中。

<%@ WebService Language="C#" Class="MyMath" %>
using System.Web.Services;
public class MyMath {
[ WebMethod ]
public int Add(int num1, int num2) {
return num1+num2;
}
}

  聲明一個XML Web服務(wù),這個服務(wù)的實現(xiàn)存在于一個匯編文件中。

  添加一個@_WebService指令到一個.asmx文件的頂部,規(guī)定實現(xiàn)XML Web服務(wù)的類,匯編文件中包含的實現(xiàn)和在這個實現(xiàn)中使用的程序語言。

  下面的@_WebService指令是一個.asmx文件中唯一的一行代碼,指定了MyName.MyWebService類存在于XML Web服務(wù)的Web應(yīng)用程序下\Bin目錄中的MyAssembly匯編文件中。

[C#]
<%@ WebService Language="C#" Class="MyName.MyWebService,MyAssembly" %>
[Visual Basic]
<%@ WebService Language="VB" Class="MyName.MyWebService,MyAssembly" %>

  聲明一個XML Web服務(wù),這個服務(wù)的實現(xiàn)存在于一個匯編文件中。

  添加一個@_WebService指令到一個.asmx文件的頂部,規(guī)定實現(xiàn)XML Web服務(wù)的類,匯編文件中包含的實現(xiàn)和在這個實現(xiàn)中使用的程序語言。

  下面的@_WebService指令是一個.asmx文件中唯一的一行代碼,指定了MyName.MyWebService類存在于XML Web服務(wù)的Web應(yīng)用程序下\Bin目錄中的MyAssembly匯編文件中。
  注意:如果你不在@_ WebService指令中指定一個匯編,那么ASP.NET在XML Web服務(wù)第一次被訪問的時候搜尋存放XML Web服務(wù)的Web應(yīng)用程序的\Bin目錄下匯編文件的列表。所以,如果你提供匯編文件名,你將改善第一次訪問時的系統(tǒng)性能。

  應(yīng)用WebService屬性

  通過應(yīng)用可選的WebService屬性到實現(xiàn)一個XML Web服務(wù)的類上,你可以使用一個描述XML Web服務(wù)的字符串來設(shè)置這個XML Web服務(wù)的默認(rèn)XML域名空間。

  強烈建議這個默認(rèn)域名空間(此處為http://tempuri.org)在XML Web服務(wù)公開使用前被修改。這是很重要的,因為你的XML Web服務(wù)必須和其他的無意中使用默認(rèn)值作為域名空間的XML Web服務(wù)區(qū)分開來。

  設(shè)置成員XML Web服務(wù)的XML域名空間

  應(yīng)用一個WebService屬性到實現(xiàn)XML Web服務(wù)的類,設(shè)置Namespace屬性。

  下面的代碼示例設(shè)置XML域名空間為http://www.contoso.com/。

[C#]
<%@ WebService Language="C#" Class="Math" Debug=true%>
using System.Web.Services;
using System;

[WebService(Namespace="http://www.contoso.com/")]
public class Math {
 [ WebMethod ]
 public int Add(int num1, int num2) {
  return num1+num2;
 }
}
[Visual Basic]
<%@ WebService Language="VB" Class="Math"%>
Imports System.Web.Services
Imports System

<WebService(Namespace:="http://www.contoso.com/")> _
Public Class Math
。糤ebMethod()> Public Function Add(num1 As Integer, num2 As Integer) As Integer
 Return num1 + num2
End Function
End Class