вопрос о заголовке мыла - PullRequest
0 голосов
/ 19 января 2011

У меня есть следующий метод контракта:

[OperationContract]
MyOutputMessageType DeleteVRequest(DeleteVRequest type);  

[MessageContract]    
public class DeleteVRequest
   {

    [MessageHeader(Name = "UserId")]
    public Guid UserId;

    [MessageHeader(Name = "Password")]
    public String Password;

    [MessageHeader(Name = "Version")]
    public String Version;

    [MessageBodyMember]
    public Guid Id;
}

[MessageContract]
public class MyOutputMessageType
{
    [MessageBodyMember]
    public string Response;
}

Мой вопрос: как значения заголовка мыла в контракте (идентификатор пользователя, пароль, версия) устанавливаются для вызова на стороне клиента? Если я напишу значение заголовка, используя Add для исходящих заголовков сообщений, оно, похоже, не будет соответствовать значению в messagecontract. Так, например, если я добавляю значение UserId к заголовкам, кажется, что это не видно в методе DeleteVRequest.

Спасибо за любую помощь, я действительно боролся со средством чтения / записи заголовков SOAP в SOAP.

1 Ответ

1 голос
/ 19 января 2011

Если на стороне клиента используется .NET, прокси-сервер службы будет принимать контракт сообщения, а не контракт данных, и вы можете установить свойства заголовка так же, как и любые другие свойства.

В противном случае выможет использовать OperationContextScope для установки значений заголовка вручную:

using(OperationContextScope context = new OperationContextScope(proxy.InnerChannel))
{
    OperationContext.Current.OutgoingMessageHeaders.Add(MessageHeader.CreateHeader("HeaderName", "HeaderNamespace", "SomeValue"));

    //Make your proxy calls here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...