程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> 當Web服務需要傳遞多個參數時的處理方法

當Web服務需要傳遞多個參數時的處理方法

編輯:關於C#
  當web服務需要傳遞很多參數的時候,可以將參數單獨寫成一個類,如下例:

代碼結構如下圖:

當Web服務需要傳遞多個參數時的寫法 - Complaint Free Wolrd - Complaint Free Wolrd
 各個類的代碼如下: 1、Service(業務代碼)類即Web服務

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

namespace Test_Webser.業務代碼
{
/// <summary>
/// Summary description for Web服務
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class Web服務 : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
[WebMethod]
public string TestSer()
{
//先實例化邏輯代碼類
Test_Webser.Com.邏輯代碼 Ljdm = new Test_Webser.Com.邏輯代碼();
//再實例化參數類
Test_Webser.Com_存放邏輯代碼_.多參類 Dcl=new Test_Webser.Com_存放邏輯代碼_.多參類();
//通過屬性傳值給字段
Dcl.a = "a";
Dcl.b = "b";
Dcl.c = "c";
Dcl.d = "d";
Dcl.e = "e";
Dcl.f = "f";
Dcl.g = "g";
//聲明泛型
List<Test_Webser.Com_存放邏輯代碼_.多參類> bb = new List<Test_Webser.Com_存放邏輯代碼_.多參類>();
Ljdm.Test(bb);
return "示例代碼";
}
}
}

2、多參類

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Test_Webser.Com_存放邏輯代碼_
{
public class 多參類
{
private string aField;
private string bField;
private string cField;
private string dField;
private string eField;
private string fField;
private string gField;
public string a
{
get { return aField; }
set { aField = value; }
}
public string b
{
get { return bField; }
set { bField = value; }
}
public string c
{
get { return cField; }
set { cField = value; }
}
public string d
{
get { return dField; }
set { dField = value; }
}
public string e
{
get { return eField; }
set { eField = value; }
}
public string f
{
get { return fField; }
set { fField = value; }
}
public string g
{
get { return gField; }
set { gField = value; }
}
}
}

3、邏輯代碼類

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Test_Webser.Com
{
public class 邏輯代碼
{
//傳遞泛型參數
public string Test(List<Test_Webser.Com_存放邏輯代碼_.多參類> CsList)
{
return "函數舉例,函數內部可以處理傳遞過來的泛型參數";
}
}
}

性能注意事項:

在決定使用IList<T> 還是使用ArrayList類(兩者具有類似的功能)時,記住IList<T> 類在大多數情況下執行得更好並且是類型安全的。

如果對IList<T> 類的類型 T 使用引用類型,則兩個類的行為是完全相同的。但是,如果對類型 T 使用值類型,則需要考慮實現和裝箱問題。

   用微軟的話講:

“添加到 ArrayList 中的任何引用或值類型都將隱式地向上強制轉換為 Object。如果項是值類型,則必須在將其添加到列表中時進行裝箱操作,在檢索時進行取消裝箱操作。強制轉換以及裝箱和取消裝箱操作都會降低性能;在必須對大型集合進行循環訪問的情況下,裝箱和取消裝箱的影響非常明顯。”

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved