WebMessageEncodingBindingElement 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
允許在 Windows Communication Foundation(WCF)綁定中使用時,能讀取與寫入純文字 XML、JavaScript 物件符號(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 編碼,以及「原始」二進位資料。 此委派由複合訊息編碼器完成。
此綁定元素及其複合編碼器用於控制不使用 SOAP 訊息 WebHttpBinding的情境下的編碼。 這些情境包括「普通 XML」(POX)、表示性狀態傳輸(REST)、非常簡單聯合(RSS)與 Atom 聯合,以及非同步 JavaScript 與 XML(AJAX)。 複合訊息編碼器不支援 SOAP 或 WS-Addressing,因此 MessageVersion 總是回傳 None。
綁定元素可在建構時 WebMessageEncodingBindingElement(Encoding) 使用建構子配置寫入字元編碼。 該 Encoding 值指定 JSON 與文字 XML 案例的寫入行為。 讀取時,任何有效的訊息編碼和文字編碼都會被理解。
此建構器設定分配給池的最大讀寫器數量預設值,這些讀寫器分別可用來處理接收與發出訊息而無需分配新的讀寫者。 MaxReadPoolSize屬性 和 MaxWritePoolSize 也可用來設定最大分配的讀取器與寫入者數量。 預設分配64名讀者和16名作家。
此建構子 XmlDictionaryReaderQuotas 也會根據屬性設定與此編碼 ReaderQuotas 相關的預設複雜度限制,以防止一類試圖利用訊息複雜度來佔用終端處理資源的阻斷服務(DOS)攻擊。
它 WebMessageEncodingBindingElement 有一種 CreateMessageEncoderFactory 方法可以建立訊息編碼器工廠,根據指定的內容類型產生 JSON、XML 或 Raw 訊息解碼器和編碼器。
同時 WebMessageEncodingBindingElement 也提供了建構 HTTP 請求所經過通道的工廠與監聽器的方法。
複合編碼器及其相關的類別和配置元件可在部分信任中使用,且此使用不需特殊權限。
建構函式
| 名稱 | Description |
|---|---|
| WebMessageEncodingBindingElement() |
初始化 WebMessageEncodingBindingElement 類別的新執行個體。 |
| WebMessageEncodingBindingElement(Encoding) |
初始化一個新的類別實例 WebMessageEncodingBindingElement ,並以指定的寫入字元編碼。 |
屬性
| 名稱 | Description |
|---|---|
| ContentTypeMapper |
取得或設定接收訊息內容類型如何映射到某種格式。 |
| CrossDomainScriptAccessEnabled |
取得或設定一個值,決定是否啟用跨域腳本存取。 |
| MaxReadPoolSize |
取得或設定一個值,指定分配至池中且可用於處理來電訊息而無需分配新讀取器的最大讀取器數量。 |
| MaxWritePoolSize |
取得或設定一個值,指定分配到池中且可用於處理發出訊息而無需分配新寫入者的最大寫入數。 |
| MessageVersion |
取得或設定訊息版本,表示綁定元素不使用 SOAP 或 WS-Addressing。 |
| ReaderQuotas |
它對端點可處理的 SOAP 訊息複雜度有限制,這些訊息可由設定為此綁定的端點所能處理。 |
| WriteEncoding |
取得或設定用於撰寫訊息文字的字元編碼。 |
方法
| 名稱 | Description |
|---|---|
| BuildChannelFactory<TChannel>(BindingContext) |
在用戶端建立通道工廠堆疊,為特定情境建立特定類型的通道。 |
| BuildChannelListener<TChannel>(BindingContext) |
在用戶端建立通道監聽器堆疊,接受特定類型通道以符合特定情境。 |
| CanBuildChannelFactory<TChannel>(BindingContext) |
回傳一個值,指示綁定元件是否能為特定類型通道建立通道工廠。 (繼承來源 BindingElement) |
| CanBuildChannelListener<TChannel>(BindingContext) |
回傳一個值,表示目前綁定是否能為特定類型的通道與上下文建立監聽器。 |
| Clone() |
建立 WebMessageEncodingBindingElement 一個由目前物件初始化的新物件。 |
| CreateMessageEncoderFactory() |
建立訊息編碼器工廠,生產可撰寫 JavaScript 物件符號(JSON)或 XML 訊息的訊息編碼器。 |
| Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
| GetHashCode() |
做為預設哈希函式。 (繼承來源 Object) |
| GetProperty<T>(BindingContext) |
若存在,則從通道堆疊中相應層回傳請求的物件,若 |
| GetType() |
取得目前實例的 Type。 (繼承來源 Object) |
| MemberwiseClone() |
建立目前 Object的淺層複本。 (繼承來源 Object) |
| ToString() |
傳回表示目前 物件的字串。 (繼承來源 Object) |
明確介面實作
| 名稱 | Description |
|---|---|
| IWsdlExportExtension.ExportContract(WsdlExporter, WsdlContractConversionContext) |
從綁定元素中包含的編碼策略產生 WSDL 合約資訊。 |
| IWsdlExportExtension.ExportEndpoint(WsdlExporter, WsdlEndpointConversionContext) |
從綁定元素中包含的編碼策略產生 WSDL 合約資訊。 |