2017-08-08 67 views
0

如何通过net.tcp绑定在每个WCF调用中附加客户端版本?C#如何将附加信息附加到NetTcpBinding中的每个调用?

我试图附加这样的:

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

但偏偏的OperationContext不是第一次通话期间可...

回答

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