Договор на обслуживание WCF и договор на передачу данных - PullRequest
0 голосов
/ 18 марта 2011

У меня следующий код

  [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;}
    }

В приведенном выше сценарии мне нужен SOAP-заголовок метода GetName, содержащий пространство имен "http://www.myweb.com/prod/child"

1 Ответ

0 голосов
/ 18 марта 2011

Если вам нужен 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;}
}
...