TimeSpan default_open_timeout, default_close_timeout;
IChannel channel;
IChannelFactory factory;
+ TimeSpan? operation_timeout = null;
+ ChannelFactory channel_factory;
#region delegates
readonly ProcessDelegate _processDelegate;
ChannelFactory channelFactory, EndpointAddress remoteAddress, Uri via)
: this (endpoint.CreateClientRuntime (null), endpoint.Contract, channelFactory.DefaultOpenTimeout, channelFactory.DefaultCloseTimeout, null, channelFactory.OpenedChannelFactory, endpoint.Binding.MessageVersion, remoteAddress, via)
{
+ channel_factory = channelFactory;
}
public ClientRuntimeChannel (ClientRuntime runtime, ContractDescription contract, TimeSpan openTimeout, TimeSpan closeTimeout, IChannel contextChannel, IChannelFactory factory, MessageVersion messageVersion, EndpointAddress remoteAddress, Uri via)
// default values
AllowInitializationUI = true;
- OperationTimeout = TimeSpan.FromMinutes (1);
if (contextChannel != null)
channel = contextChannel;
}
}
- [MonoTODO]
- public TimeSpan OperationTimeout { get; set; }
+ public TimeSpan OperationTimeout {
+ get { return this.operation_timeout ?? (channel_factory != null ? channel_factory.Endpoint.Binding.SendTimeout : DefaultCommunicationTimeouts.Instance.SendTimeout); }
+ set { this.operation_timeout = value; }
+ }
public IOutputSession OutputSession {
get {
if (p == parameters)
return retval;
- if (p.Length != parameters.Length)
- throw new InvalidOperationException ();
Array.Copy (p, parameters, p.Length);
return retval;
}