首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

WCF 技術內幕(29):訊息——使用訊息標頭(下):WS-Addressing 與 EndpointAddress

     編輯:關於.NET

MessageHeaders:WS-Addressing 標頭的強型別存取

MessageHeaders 定義屬性直接對應 WS-Addressing 標頭:

  • From、ReplyTo、FaultTo:EndpointAddress 型別
  • To:Uri 型別
  • Action、MessageId、RelatesTo:對應同名標頭

MessageId/RelatesTo 為 UniqueId 型別(類 GUID,可自訂字串值),因 WS-Addressing 規範為 xs:anyURI,System.Guid 不足以涵蓋。

EndpointAddress:WS-Addressing 端點的 CLR 抽象

雙重功能:儲存目標位址資訊、序列化為訊息標頭。包裝 System.Uri,6 個建構子 5 個接受 Uri,1 個接受字串(內部轉 Uri)。支援相等比較(比較內部狀態)。

AddressHeader:標頭參數的抽象

對應 WS-Addressing ReferenceParameters。工廠方法 CreateAddressHeader、Write/Get 方法簡化序列化/反序列化。

序列化 EndpointAddress 到訊息

var header = AddressHeader.CreateAddressHeader("ref param");
var address = new EndpointAddress(new Uri("https://wintellect.com/someService"), new[] { header });
var msg = Message.CreateMessage(MessageVersion.Soap12WSAddressing10, "urn:SomeAction", "Hello There");
msg.Headers.FaultTo = address;  // 或 address.ApplyTo(msg) 設定 To 標頭

輸出含 <a:FaultTo>、<a:Address>、<a:ReferenceParameters> 完整結構,符合 WS-Addressing 規範。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved