The following is an example of a SOAP envelope.
<s:Envelope xmlns:s=”http://schemas.xmlsoap.org/soap/envelope”>
<s:Header>
<h:StoreId xmlns:h=”http://www.contoso.com”>6495</h:StoreId>
</s:Header>
<s:Body>
<CheckStockRequest xmlns=”http://www.contoso.com”>
<ItemId>2469<ItemId>
</CheckStockRequest>
</s: Body>
</s:Envelope>
You need to create a message contract that generates the SOAP envelope.
Which code segment should you use?
A.
[MessageContract(WrapperName=”http://www.contoso.com”)]
public class CheckStockRequest
{
[MessageHeader(Namespace=”http://www.contoso.com”)]
public int StoreId { get; set; }
[MessageBodyMember(Namespace=”http://www.contoso.com”)]
public int ItemId { get; set; }
}
B.
[MessageContract(WrapperNamespace=”http://www.contoso.com”)]
public class CheckStockRequest
{
[MessageHeader(Namespace=”http://www.contoso.com”)]
public int StoreId { get; set; }
[MessageBodyMember(Namespace=”http://www contoso.com”)]
public int ItemId { get; set; }
}
C.
[MessageContract(WrapperNamespace=”http://www.contoso.com”)]
public class CheckStockRequest
{
[MessageHeader(Namespace=”http://www.contoso.com”)]
public int StoreId { get; set; }
public int ItemId { get; set; }
}
D.
[MessageContract(WrapperNamespace=”http://www.contoso.com”)]
public class CheckStockRequest
{
[MessageHeader(Namespace=”http://www.contoso.com”)]
public int StoreId { get; set; }
[MessageBodyMember]
public int ItemId { get; set; }
}
Explanation:
MessageContractAttribute.WrapperNamespace Property
(http://msdn.microsoft.com/en-us/library/system.servicemodel.messagecontractattribute.wrappernamespace.aspx)I saw the answer D!!
I guess D it’s the right one
B is only an answer. D is not correct. As it has http://tempuri.org/ for ItemID. See XML:
4000
200
D is the right answer. WrapperNamespace will apply the http://wwww.contoso.com namespace to the wrapper . You don’t want namespace for that’s why B is wrong.
D
Check at http://msdn.microsoft.com/en-us/library/ms730255%28v=vs.110%29.aspx