WCF服务合同和数据合同

时间:2011-03-18 09:21:15

标签: wcf messagecontract servicecontract

我有以下代码

  [ServiceContract(Namespace = "http://www.myweb.com/prod")]
        public interface IBaseService
        {
    [OperationContract]
    public string GetName(IDMessageContract ID)
    }

    [ServiceContract(Namespace = "http://www.myweb.com/prod/child")]
        public interface IChildService : IBaseService
        {}

    public class BaseService 
        { public string GetName(IDMessageContract ID)}

    public class ChildService: IChildService 
        {}

    [MessageContract]
    public class IDMessageContract 
    {
      public string ID{get;set;}
    }

在上面的场景中,我需要包含名称空间“http://www.myweb.com/prod/child”的GetName方法SOAP标头

1 个答案:

答案 0 :(得分:0)

如果需要具有指定命名空间的SOAP标头,则必须在消息协定中指定该标头并使用其Namespace属性。类似的东西:

[MessageContract]
public class IDMessageContract 
{
  [MessageHeader(Namespace="http://www.myweb.com/prod/child")]
  public string MyHeader { get; set;}
  [MessageBodyMember]
  public string ID{get;set;}
}