C#如何在NetTcpBinding中为每个调用附加附加信息?

时间:2017-08-08 11:17:22

标签: c# wcf

如何通过net.tcp绑定在每个WCF调用中附加客户端版本?

我试着像这样附上它:

        MessageHeader<string> header = new MessageHeader<string>(SerializeVersion());
        MessageHeader untypedHeader = header.GetUntypedHeader(VERSION_HEADER, Namespace);
        OperationContext.Current.OutgoingMessageHeaders.Add(untypedHeader);

但不幸的是,OperationContext在第一次通话时不可用......

1 个答案:

答案 0 :(得分:0)

如果没有OperationContext,那么创建自己的:

void MyMethod()
{
  using (var proxy = new WcfProxy())
  {
    using (var scope = new OperationContextScope((IContextChannel)proxy))
    {
      MessageHeader header = MessageHeader.CreateHeader("VERSION_HEADER", "ns", SerializeVersion());
      OperationContext.Current.OutgoingMessageHeaders.Add(header); 

      proxy.ExecuteOperation() // Call you service
    }
  }
}