WebMessageEncodingBindingElement 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
啟用在用於 Windows Communication Foundation (WCF) 繫結時,要讀取與寫入的純文字 XML、JavaScript Object Notation (JSON) 訊息編碼和「未經處理」二進位內容。
public ref class WebMessageEncodingBindingElement sealed : System::ServiceModel::Channels::MessageEncodingBindingElement, System::ServiceModel::Description::IWsdlExportExtension
public sealed class WebMessageEncodingBindingElement : System.ServiceModel.Channels.MessageEncodingBindingElement, System.ServiceModel.Description.IWsdlExportExtension
type WebMessageEncodingBindingElement = class
inherit MessageEncodingBindingElement
interface IWsdlExportExtension
Public NotInheritable Class WebMessageEncodingBindingElement
Inherits MessageEncodingBindingElement
Implements IWsdlExportExtension
- 繼承
- 實作
備註
編碼是將訊息轉換成位元組序列的處理序, 解碼則是相反的處理序。 這些處理序需要字元編碼的規格。 WebMessageEncodingBindingElement 的運作方式是委派給一系列的內部編碼器,以處理純文字 XML 和 JSON 編碼以及「原始」二進位資料。 這項委派是由複合訊息編碼器所完成。
在不使用由 WebHttpBinding 所使用之 SOAP 傳訊的案例中,會使用這個繫結項目及其複合編碼器來控制其編碼方式。 這些案例包括 "Plain Old XML" (POX)、代表性狀態傳輸 (Representational State Transfer,REST)、Really Simple Syndication (RSS) 和 Atom 新聞訂閱,以及 Asynchronous JavaScript 與 XML (AJAX)。 複合訊息編碼器不支援 SOAP 或 WS-Addressing,因此 MessageVersion 一定會傳回 None。
在建構階段可使用 WebMessageEncodingBindingElement(Encoding) 建構函式,以寫入字元編碼設定此繫結項目。 Encoding 值會指定 JSON 和 Textual XML 案例在寫入時的行為。 在讀取時,任何有效的訊息編碼和文字編碼都是可解讀的。
這個建構函式會設定配置到集區,以及分別可用來處理傳入和傳出訊息 (在不配置新的讀取器或寫入器的情況下) 之讀取器及寫入器數目上限的預設值。 MaxReadPoolSize 和 MaxWritePoolSize 等屬性也可以用於設定要分別配置之讀取器和寫入器的最大數目。 根據預設,將配置 64 個讀取器和 16 個寫入器。
預設複雜度條件約束也是由位於與此編碼相關之 XmlDictionaryReaderQuotas 上的建構函式使用 ReaderQuotas 屬性設定,以防止阻絕服務 (DOS) 類別攻擊試圖使用訊息複雜度困住端點處理資源。
WebMessageEncodingBindingElement 具有 CreateMessageEncoderFactory 方法,它會根據指定的內容型別,適當建立會產生 JSON、XML 或原始格式等訊息解碼器和編碼器的訊息編碼器處理站。
WebMessageEncodingBindingElement 也會提供方法,為 HTTP 要求所流經的通道建置處理站和接聽程式。
複合編碼器及其相關的類別和組態元件可在部分信任環境中使用,而且在使用上不需要任何特殊權限。
建構函式
WebMessageEncodingBindingElement() |
初始化 WebMessageEncodingBindingElement 類別的新執行個體。 |
WebMessageEncodingBindingElement(Encoding) |
使用指定的寫入字元編碼,初始化 WebMessageEncodingBindingElement 類別的新執行個體。 |
屬性
ContentTypeMapper |
取得或設定傳入訊息的內容型別對應至格式的方式。 |
CrossDomainScriptAccessEnabled |
取得或設定值,這個值會判斷是否啟用跨網域指令碼存取。 |
MaxReadPoolSize |
取得或設定值,這個值會指定配置到集區的讀取器數目上限,以及可在不配置新讀取器的狀況下處理傳入訊息的讀取器數目上限。 |
MaxWritePoolSize |
取得或設定值,這個值會指定配置到集區的寫入器數目上限,以及可在不配置新寫入器的狀況下處理傳出訊息的寫入器數目上限。 |
MessageVersion |
取得或設定訊息版本,該版本會指出繫結項目不使用 SOAP 或 WS-Addressing。 |
ReaderQuotas |
取得 SOAP 訊息複雜度的條件約束,這些條件約束可由使用此繫結所設定的端點處理。 |
WriteEncoding |
取得或設定用於寫入訊息文字的字元編碼。 |
方法
BuildChannelFactory<TChannel>(BindingContext) |
在用戶端上建置通道處理站堆疊,這個堆疊會針對指定的內容建立指定的通道類型。 |
BuildChannelListener<TChannel>(BindingContext) |
在用戶端上建置通道接聽程式堆疊,這個堆疊會針對指定的內容接受指定的通道類型。 |
CanBuildChannelFactory<TChannel>(BindingContext) |
傳回值,指出繫結項目是否可以建置 (Build) 特定通道類型的通道處理站。 (繼承來源 BindingElement) |
CanBuildChannelListener<TChannel>(BindingContext) |
傳回值,這個值會指出目前的繫結是否可以建置指定之通道及內容類型的接聽程式。 |
Clone() |
新建一個從目前 WebMessageEncodingBindingElement 物件初始化的這類物件。 |
CreateMessageEncoderFactory() |
建立訊息編碼器處理站,此處理站會產生可以寫入 JavaScript Object Notation (JSON) 或 XML 訊息的訊息編碼器。 |
Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
GetProperty<T>(BindingContext) |
如果存在,則從通道堆疊中的適當層級傳回所要求型別的物件,如果不存在,則為 |
GetType() |
取得目前執行個體的 Type。 (繼承來源 Object) |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
ToString() |
傳回代表目前物件的字串。 (繼承來源 Object) |
明確介面實作
IWsdlExportExtension.ExportContract(WsdlExporter, WsdlContractConversionContext) |
從繫結項目中包含的編碼原則產生 WSDL 合約資訊。 |
IWsdlExportExtension.ExportEndpoint(WsdlExporter, WsdlEndpointConversionContext) |
從繫結項目中包含的編碼原則產生 WSDL 合約資訊。 |