WebServices 之二 支援的資料型別

2021-04-13 22:20:42 字數 2615 閱讀 8905

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

[webmethod]

public datetime getnowtime()

[webmethod]

public string getstringarray();}

[webmethod]

public float getfloatarray();}

[webmethod]

public byte getbytes()

} 列舉 enum

public enum ***

[webservice(namespace = "http://www.rainsts.net/", description="我的web服務")]

[webservicebinding(conformsto = wsiprofiles.basicprofile1_1)]

public class webservice : system.web.services.webservice

[webmethod]

public *** get***()

[webmethod]

public *** getall***()

} 結構 struct

結構體預設就會建立無引數構造方法,且不允許自定義。

public struct mystruct

}

[webservice(namespace = "http://www.rainsts.net/", description="我的web服務")]

[webservicebinding(conformsto = wsiprofiles.basicprofile1_1)]

public class webservice : system.web.services.webservice

[webmethod]

public mystruct getmystruct()

[webmethod]

public mystruct getmystructs()

; ;}

}型別 class

public struct mystruct

}

public class myclass

public myclass(int x, int y, string name) : this()

private string name;

public string name

set

}private mystruct mystruct;

public mystruct mystruct

set

}public void test() // 客戶端**不會生成該方法。

}

[webservice(namespace = "http://www.rainsts.net/", description="我的web服務")]

[webservicebinding(conformsto = wsiprofiles.basicprofile1_1)]

public class webservice : system.web.services.webservice

[webmethod]

public myclass getmyclass()

[webmethod]

public myclass getmyclassarray()

; ;}

}有關資料型別的更詳細資訊,請檢視 msdn 文件。

ms-help://ms.msdnqtr.v80.chs/ms.msdn.v80/ms.visualstudio.v80.chs/dv_fxwebservices/html/70567d9f-6e53-42a8-bbd5-aee42b25dd28.htm  

3 支援向量機

3.1 本質 基本模型是定義在特徵空間上的間隔最大的線性分類器。核技巧使之成為實質上的非線性分類器。學習策略是間隔最大化,可形式化為求解凸二次優化問題。等價於正則化的合頁損失函式的最小化問題。學習演算法是求解凸二次規劃的最優化演算法。理解支援向量機可以從簡至繁推進 線性可分支援向量機 硬間隔svm ...

機器學習筆記(二 支援向量機)

本次筆記基於mooc平台浙江大學的機器學習課程 對於乙個訓練樣本集,i 1 n,若存在 w,b 使得使得滿足下式,則是線性可分問題。要求這樣的乙個超平面 在二維平面中是一條直線 則要滿足以下公式 證明過程如下 首先要確認兩個事實,即 和 則可以根據線性可分問題的滿足式,用a來縮放 w,b 使得找到某...

mac sublime2支援中文

一 安裝package control 按照提示複製一段python命令安裝package control,也可以直接複製這一段到控制台 ctrl import urllib2,os pf package control.sublime package ipp sublime.installed p...