|
ASP.NET创建XML Web服务全接触(7)
通过因特网产生许多服务哀求可能影响客户应用程序的性能。当设计你的XML Web服务时,通过创建把有关信息集中在一起的方式可以有效利用服务哀求。例如,假定你有一个XML Web服务,用来检索一本书的信息。我们可以创建一个在一条服务哀求中返回所有的信息的方式,来代替单独的检索书名、作者和出版社的方式。一次传送大块的信息比多次传送小块的信息更有效率。
下面的代码示例解释如何把有关信息组织到单个XML Web服务方式中。 [C#] <%@ WebService Language=\"C#\" Class=\"DataService\" %> using System; using System.Data; using System.Data.SqlClient; using System.Web.Services; public class DataService { [WebMethod] public DataSet GetTitleAuthors() { SqlConnection myConnection = new SqlConnection(\"Persist Security Info=False;Integrated Security=SSPI;server=localhost;database=pubs\"); SqlDataAdapter myCommand1 = new SqlDataAdapter (\"select * from Authors\", myConnection); SqlDataAdapter myCommand2 = new SqlDataAdapter(\"select * from Titles\", myConnection); DataSet ds = new DataSet(); myCommand1.Fill(ds, \"Authors\"); myCommand2.Fill(ds, \"Titles\"); return ds; } } [Visual Basic] <%@ WebService Language=\"VB\" Class=\"DataService\" %> Imports System Imports System.Data Imports System.Data.SqlClient Imports System.Web.Services Public Class DataService <WebMethod> _ Public Function GetTitleAuthors() As DataSet Dim myConnection As New SqlConnection(\"Persist Security Info=False;Integrated Security=SSPI;server=localhost;database=pubs\") Dim myCommand1 As New SqlDataAdapter(\"select * from Authors\", myConnection) Dim myCommand2 As New SqlDataAdapter(\"select * from Titles\", myConnection) Dim ds As New DataSet() myCommand1.Fill(ds, \"Authors\") myCommand2.Fill(ds, \"Titles\") Return ds End Function End Class |
当设计你的XML Web服务时,请确保使用标准的面向对象编程操作。使用封装来隐藏实现细节。对于更复杂的XML Web服务,你可以使用继续和多态性来再次使用代码并简化你的设计。 下面的代码示例显示如何使用继续来创建一个执行数学计算的XML Web服务。 [C#] <%@ WebService Language=\"C#\" Class=\"Add\" %> using System; using System.Web.Services; abstract public class MathService : WebService { [WebMethod] abstract public float CalculateTotal(float a, float b); } public class Add : MathService { [WebMethod] override public float CalculateTotal(float a, float b) { return a + b; } } public class Subtract : MathService { [WebMethod] override public float CalculateTotal(float a, float b) { return a - b; } } public class Multiply : MathService { [WebMethod] override public float CalculateTotal(float a, float b) { return a * b; } } public class Divide : MathService { [WebMethod] override public float CalculateTotal(float a, float b) { if (b==0) return -1; else return a / b; } } [Visual Basic] <%@ WebService Language=\"VB\" Class=\"Add\" %> Imports System Imports System.Web.Services MustInherit Public Class MathService : Inherits WebService <WebMethod> _ Public MustOverride Function CalculateTotal(a As Single, _ b As Single) As Single End Class Public Class Add : Inherits MathService <WebMethod> Public Overrides Function CalculateTotal(a As Single, b As Single) As Single Return a + b End Function End Class Public Class Subtract : Inherits MathService <WebMethod> Public Overrides Function CalculateTotal(a As Single, b As Single) As Single Return a - b End Function End Class Public Class Multiply : Inherits MathService <WebMethod> Public Overrides Function CalculateTotal(a As Single, b As Single) As Single Return a * b End Function End Class Public Class Divide : Inherits MathService <WebMethod> Public Overrides Function CalculateTotal(a As Single, b As Single) As Single If b = 0 Then Return - 1 Else Return a / b End If End Function End Class |
返回类别: 教程 上一教程: Web Services的魅力 下一教程: Net:解读微软互联网新战略(上)
您可以阅读与"ASP.NET创建XML Web服务全接触(7)"相关的教程: · ASP.NET创建XML Web服务全接触(2) · ASP.NET创建XML Web服务全接触(8) · ASP.NET创建XML Web服务全接触(12) · ASP.NET创建XML Web服务全接触(14) · ASP.NET创建XML Web服务全接触(13)
|