WS-Addressing endpoint Specification

Source: Internet
Author: User

WS-Addressing endpoint specification WS-Addressing provides a unified and standardized Addressing mode for SOAP messages. One of the core of this standard is the endpoint specification. The MessageHeader type is the CLR abstraction of the SOAP message header block. It can be assumed that the MessageHeader object is the CLR abstraction of the Endpoint reference specification. The IsReferenceParameter read-only attribute indicates whether the MessageHeader object is a WS-Addressing reference parameter or reference attribute. MessageHeaders-type SOAP messages may contain many header blocks, which indicate methods for a group of header block objects. MessageHeaders is used for this purpose. The read-only attribute Headers of the MessageHeaders type is mainly used to add, modify, query, and remove MessageHeader in Message. MessageHeaders is a specific class, not an abstract class. It does not contain factory methods. Add MessageHeader: [csharp] MessageHeaders headers = new MessageHeaders (MessageVersion. soap12WSAddressingAugust2004); headers. add (messageHeader); headers. insert (0, messageHeader); MessageHeaders headers = new MessageHeaders (MessageVersion. soap12WSAddressingAugust2004); headers. add (messageHeader); headers. insert (0, messageHeader); get the value of MessageHeader: [csharp] urchaseOrderInfo purchaseOrderInfo = new Pu RchaseOrderInfo (1000, DateTime. utcNow, 10.92d); string WSAddNS = "http://www.andersoft.com/messageheader"; MessageHeader messageHeader = MessageHeader. createHeader ("MessageID", WSAddNS, purchaseOrderInfo); Stream stream = new MemoryStream (); XmlDictionaryWriter writer = XmlDictionaryWriter. createTextWriter (stream, Encoding. UTF8); messageHeader. writeHeader (writer, MessageVersion. soap12WSAddressingAugus T2004); MessageHeaders headers = new MessageHeaders (MessageVersion. soap12WSAddressingAugust2004); headers. insert (0, messageHeader); writer. flush (); stream. position = 0; Console. writeLine (headers. getHeader <PurchaseOrderInfo> (0 ). PONumber); // 1000 Console. writeLine (headers. findHeader (messageHeader. name, messageHeader. namespace); // 0 PurchaseOrderInfo purchaseOrderInfo = new PurchaseOrderInfo (1000, D AteTime. utcNow, 10.92d); string WSAddNS = "http://www.andersoft.com/messageheader"; MessageHeader messageHeader = MessageHeader. createHeader ("MessageID", WSAddNS, purchaseOrderInfo); Stream stream = new MemoryStream (); XmlDictionaryWriter writer = XmlDictionaryWriter. createTextWriter (stream, Encoding. UTF8); messageHeader. writeHeader (writer, MessageVersion. soap12WSAddressingAugust2004); MessageHeaders Headers = new MessageHeaders (MessageVersion. soap12WSAddressingAugust2004); headers. insert (0, messageHeader); writer. flush (); stream. position = 0; Console. writeLine (headers. getHeader <PurchaseOrderInfo> (0 ). PONumber); // 1000 Console. writeLine (headers. findHeader (messageHeader. name, messageHeader. namespace); // 0 copy the MessageHeaders object [csharp] Message message = Message. createMessage (MessageVersion. soap12WS AddressingAugust2004, "urn: SomeAction", "Hello WCF"); message. headers. add (MessageHeader. createHeader ("test", "test", "test"); message. headers. to = new Uri ("http://www.andersoft.com/Anders"); Message message2 = Message. createMessage (MessageVersion. soap12WSAddressingAugust2004, "urn: SomeAction2", "Hello WCF"); message2.Headers. copyHeadersFrom (message); Console. writeLine (message2.ToString (); // <s: E Nvelope xmlns: a = "http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns: s = "http://www.w3.org/2003/05/soap-envelope" >/// <s: Header> // <a: Action s: mustUnderstand = "1"> urn: someAction2 </a: Action> // <a: Action s: mustUnderstand = "1"> urn: SomeAction </: action> // <test xmlns = "test"> test </test> // <a: To s: mustUnderstand = "1"> http://www.andersoft.com/Anders </: to> // </s: Header> // <s: Body> // <string xmlns = "Http://schemas.microsoft.com/2003/10/Serialization/"> Hello WCF </string> // </s: Body> // </s: Envelope> Message message = Message. createMessage (MessageVersion. soap12WSAddressingAugust2004, "urn: SomeAction", "Hello WCF"); message. headers. add (MessageHeader. createHeader ("test", "test", "test"); message. headers. to = new Uri ("http://www.andersoft.com/Anders"); Message message2 = Message. createMessage (Me SsageVersion. soap12WSAddressingAugust2004, "urn: SomeAction2", "Hello WCF"); message2.Headers. copyHeadersFrom (message); Console. writeLine (message2.ToString (); // <s: Envelope xmlns: a = "http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns: s = "http://www.w3.org/2003/05/soap-envelope" >/// <s: Header> // <: action s: mustUnderstand = "1"> urn: SomeAction2 </a: Action> // <a: Action s: mustUnderstand = "1"> urn: Some Action </a: Action> // <test xmlns = "test"> test </test> // <a: To s: mustUnderstand = "1"> http://www.andersoft.com/Anders </a: To> // </s: Header> // <s: body> // <string xmlns = "http://schemas.microsoft.com/2003/10/Serialization/"> Hello WCF </string> // </s: Body> // </s: envelope> serialize MessageHeaders object [csharp] Stream stream = new MemoryStream (); XmlDictionaryWriter writer = XmlDictionaryWriter. createTextWriter (str Eam, Encoding. UTF8); message2.Headers. writeHeader (0, writer); Stream stream = new MemoryStream (); XmlDictionaryWriter writer = XmlDictionaryWriter. createTextWriter (stream, Encoding. UTF8); message2.Headers. writeHeader (0, writer); The MessageHeaders type defines the attributes related To the endpoint: From, ReplyTo, faultasks and To, and Action, MessageId, and RelatesTo. [Csharp] message2.Headers. from = new EndpointAddress ("http://www.andersoft.com/message2"); message2.Headers. replyTo = new EndpointAddress ("http://www.andersoft.com/ReplyTo"); message2.Headers. faultasks = new EndpointAddress ("http://www.andersoft.com/FaultTo"); message2.Headers. to = new Uri ("http://www.andersoft.com/To"); message2.Headers. action = "Message2"; message2.Headers. messageId = new UniqueId (Guid. newGuid (); message2.Headers. relatesTo = new UniqueId (Guid. newGuid (); message2.Headers. from = new EndpointAddress ("http://www.andersoft.com/message2"); message2.Headers. replyTo = new EndpointAddress ("http://www.andersoft.com/ReplyTo"); message2.Headers. faultasks = new EndpointAddress ("http://www.andersoft.com/FaultTo"); message2.Headers. to = new Uri ("http://www.andersoft.com/To"); message2.Headers. action = "Message2"; message2.Headers. messageId = new UniqueId (Guid. newGuid (); message2.Headers. relatesTo = new UniqueId (Guid. newGuid (); UniqueId class: www.2cto.com [csharp] Assembly System. runtime. serialization. dll, v4.0.30319 namespace System. xml {// Summary: // A unique identifier optimized for Guids. public class UniqueId Assembly System. runtime. serialization. dll, v4.0.30319namespace System. xml {// Summary: // A unique identifier optimized for Guids. public class UniqueId

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.