共用方式為


使用 ASP.NET 建立的 XML Web Service 所支援的資料型別

所有的程式語言都指定各種資料型別,來儲存各式各樣的資料。程式語言採用的簡單或基本資料型別其實很類似,但是還是稍有不同,使得語言間不能直接對應。所以,在建立讓任何用戶端應用程式都可以存取的 XML Web Service 時,這些差異就形成挑戰。

為了確保有最大的涵蓋面,XML Web Service 支援的各種基本資料型別能使用 XML 編碼及序列化。

下列資料表顯示 XML Web Service 支援的基本資料型別,也是 XML 結構描述定義 (XSD) 語言第二部分所列的資料型別,並加上 C++ 內對等的資料型別和 Common Language Runtime。

XML 結構描述定義語言 C++ Common Language Runtime
Boolean bool Boolean
Byte char, __int8    
Double double Double
Datatype struct    
Decimal     Decimal
Enumeration enum Enum
Float float Single
Int int, long, __int32 Int32
Long __int64 Int64
Qname     XmlQualifiedName
Short short, __int16 Int16
String BSTR String
TimeInstant     DateTime
UnsignedByte unsigned __int64    
UnsignedInt unsigned __int64 UInt32
UnsignedLong unsigned __int64 UInt64
UnsignedShort unsigned __int64 UInt16
基本型別和列舉型別的陣列 上述型別的陣列

如需將資料型別從 Common Language Runtime 轉換為其他語言如 C# 及 Visual Basic .NET,請參閱 .NET Framework 類別庫

您可用的資料型別視 XML Web Service 使用的通訊協定而定。例如,HTTP-GET 和 HTTP-POST 通訊協定都受限於名稱/值配對。但是,SOAP 可讓您將 XML 做更多的用途,來編碼及序列化複雜資料結構,例如類別。

下表顯示 HTTP-GET 和 HTTP-POST 支援的型別。

型別 說明
基本型別 (有限制的) 下列基本型別轉換為以字串表示的名稱/值配對:BooleanCurrencyDateTimeDecimal, DoubleInt16Int32Int64SingleStringUInt16Uint32UInt64
列舉型別 就用戶端的觀點,列舉型別會變成類別,且每個值具有靜態常數字串。
基本型別和列舉型別的陣列 上述型別的陣列

使用 SOAP 通訊協定時,XML Web Service 所支援的資料型別直接關聯至可序列化成 XML 的資料型別。ASP.NET 使用 XmlSerializer 類別將 XML 序列化及還原序列化。如需 XmlSerializer 支援型別的詳細資訊,請參閱 XML 序列化簡介

除了上表所列出的基本型別外,使用 SOAP 通訊協定的 XML Web Service 還支援下列其他的資料型別。

型別 說明
類別和結構、
類別和結構的陣列
類別和結構型別,具有公用的欄位或屬性。公用屬性和欄位經序列化。類別必須有不接受任何參數的預設建構函式。
DataSet
DataSet 的陣列
ADO.NET DataSet 類兒。Dataset 型別也可以顯示為類別或結構中的欄位。
XmlNode
XmlNode 的陣列
XmlNode 是 XML 片段的 In-Memory 表示。XmlNodes 型別可以作為參數或傳回值來傳遞,而且會以符合 SOAP 形式加入至傳遞到 XML Web Service 的 XML 其餘部份。這樣即使它的結構因為各個呼叫而變更,或是您不知道要傳遞的所有型別,您也可以傳遞或傳回 XML。XmlNode 型別也可以顯示為類別或結構中的欄位。

請參閱

XML 序列化簡介 | .NET Framework 類別庫 | 使用 ASP.NET 建置 XML Web Service | 建置 XML Web Service 用戶端