Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>One alternative way is to define a <strong>MessageContract</strong> type for your request, which allows you to define what shows up in the header and body of the SOAP message and adjust the namespace used. For example, consider the following service definition:</p> <pre><code>[ServiceContract] public interface IMyService { [OperationContract] MyResponse DoSomething(MyRequest request); } public class MyService : IMyService { public MyResponse DoSomething(MyRequest request) { return new MyResponse() { Details = "Service did something awesome.", Timestamp = DateTime.Now }; } } [MessageContract(IsWrapped = true, WrapperNamespace = "http://myservice/messages/")] public class MyRequest { [MessageHeader(Namespace = "http://myservice/security")] public string TokenThingy { get; set; } } [MessageContract(IsWrapped = true, WrapperNamespace = "http://myservice/messages")] public class MyResponse { [MessageBodyMember] public string Details { get; set; } [MessageBodyMember] public DateTime Timestamp { get; set; } } </code></pre> <p>Sending a request produces the following SOAP:</p> <pre><code>&lt;s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"&gt; &lt;s:Header&gt; &lt;Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none"&gt;http://tempuri.org/IMyService/DoSomething&lt;/Action&gt; &lt;h:TokenThingy xmlns:h="http://myservice/security"&gt;fda&lt;/h:TokenThingy&gt; &lt;/s:Header&gt; &lt;s:Body&gt; &lt;MyRequest xmlns="http://myservice/messages/" /&gt; &lt;/s:Body&gt; &lt;/s:Envelope&gt; </code></pre> <p>And a response from the service looks like this:</p> <pre><code>&lt;s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"&gt; &lt;s:Header /&gt; &lt;s:Body&gt; &lt;MyResponse xmlns="http://myservice/messages"&gt; &lt;Details xmlns="http://tempuri.org/"&gt;Service did something awesome.&lt;/Details&gt; &lt;Timestamp xmlns="http://tempuri.org/"&gt;2012-05-04T17:04:36.5980424-04:00&lt;/Timestamp&gt; &lt;/MyResponse&gt; &lt;/s:Body&gt; &lt;/s:Envelope&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload