public DuplexRequestSessionChannel(DuplexRequestBindingElement.DuplexRequestChannelFactory channelFactory, IDuplexSessionChannel innerChannel) : base(channelFactory) { this.innerChannel = innerChannel; this.includeExceptionDetails = channelFactory.BindingElement.IncludeExceptionDetails; this.inflightRequests = new ConcurrentDictionary <UniqueId, DuplexRequestBindingElement.DuplexRequestSessionChannel.DuplexCorrelationAsyncResult>(); this.onInnerChannelFaulted = new EventHandler(this.OnInnerChannelFaulted); this.clientMode = channelFactory.BindingElement.ClientMode; this.messageVersion = innerChannel.GetProperty <MessageVersion>(); this.serverShutdownEvent = new ManualResetEvent(false); if (this.clientMode) { this.pingTimer = new IOThreadTimer(DuplexRequestBindingElement.DuplexRequestSessionChannel.beginPing, this, true); } }
public override T GetProperty <T>() { return(innerChannel.GetProperty <T>()); }