# System.ServiceModel.Channels ``` diff +namespace System.ServiceModel.Channels { + public abstract class AddressHeader { + protected AddressHeader(); + public abstract string Name { get; } + public abstract string Namespace { get; } + public static AddressHeader CreateAddressHeader(object value); + public static AddressHeader CreateAddressHeader(object value, XmlObjectSerializer serializer); + public static AddressHeader CreateAddressHeader(string name, string ns, object value); + public static AddressHeader CreateAddressHeader(string name, string ns, object value, XmlObjectSerializer serializer); + public override bool Equals(object obj); + public virtual XmlDictionaryReader GetAddressHeaderReader(); + public override int GetHashCode(); + public T GetValue(); + public T GetValue(XmlObjectSerializer serializer); + protected abstract void OnWriteAddressHeaderContents(XmlDictionaryWriter writer); + protected virtual void OnWriteStartAddressHeader(XmlDictionaryWriter writer); + public MessageHeader ToMessageHeader(); + public void WriteAddressHeader(XmlDictionaryWriter writer); + public void WriteAddressHeader(XmlWriter writer); + public void WriteAddressHeaderContents(XmlDictionaryWriter writer); + public void WriteStartAddressHeader(XmlDictionaryWriter writer); + } + public sealed class AddressHeaderCollection : ReadOnlyCollection { + public AddressHeaderCollection(); + public AddressHeaderCollection(IEnumerable addressHeaders); + public void AddHeadersTo(Message message); + public AddressHeader[] FindAll(string name, string ns); + public AddressHeader FindHeader(string name, string ns); + } + public sealed class AddressingVersion { + public static AddressingVersion None { get; } + public static AddressingVersion WSAddressing10 { get; } + public override string ToString(); + } + public sealed class ApplicationContainerSettings { + public const int CurrentSession = -1; + public const int ServiceSession = 0; + public string PackageFullName { get; set; } + public int SessionId { get; set; } + } + public static class ApplicationContainerSettingsDefaults { + public const int CurrentSession = -1; + public const int ServiceSession = 0; + public const string CurrentUserSessionDefaultString = "CurrentSession"; + public const string PackageFullNameDefaultString = null; + public const string Session0ServiceSessionString = "ServiceSession"; + } + public static class BasicHttpBindingDefaults { + public const BasicHttpMessageCredentialType MessageSecurityClientCredentialType = 0; + public const TransferMode TransferMode = 0; + public const WSMessageEncoding MessageEncoding = 0; + public static Encoding TextEncoding { get; } + } + public static class BinaryEncoderDefaults { + public const int MaxSessionSize = 2048; + public static BinaryVersion BinaryVersion { get; } + public static EnvelopeVersion EnvelopeVersion { get; } + } + public sealed class BinaryMessageEncodingBindingElement : MessageEncodingBindingElement { + public BinaryMessageEncodingBindingElement(); + public CompressionFormat CompressionFormat { get; set; } + public int MaxReadPoolSize { get; set; } + public int MaxSessionSize { get; set; } + public int MaxWritePoolSize { get; set; } + public override MessageVersion MessageVersion { get; set; } + public XmlDictionaryReaderQuotas ReaderQuotas { get; set; } + public override IChannelFactory BuildChannelFactory(BindingContext context); + public override BindingElement Clone(); + public override MessageEncoderFactory CreateMessageEncoderFactory(); + public override T GetProperty(BindingContext context); + public bool ShouldSerializeMessageVersion(); + public bool ShouldSerializeReaderQuotas(); + } + public class BinaryVersion { + public static readonly BinaryVersion DeflateVersion1; + public static readonly BinaryVersion GZipVersion1; + public static readonly BinaryVersion Version1; + public string ContentType { get; } + public static BinaryVersion CurrentVersion { get; } + public IXmlDictionary Dictionary { get; } + public string SessionContentType { get; } + } + public abstract class Binding : IDefaultCommunicationTimeouts { + protected Binding(); + protected Binding(string name, string ns); + public TimeSpan CloseTimeout { get; set; } + public MessageVersion MessageVersion { get; } + public string Name { get; set; } + public string Namespace { get; set; } + public TimeSpan OpenTimeout { get; set; } + public TimeSpan ReceiveTimeout { get; set; } + public abstract string Scheme { get; } + public TimeSpan SendTimeout { get; set; } + public IChannelFactory BuildChannelFactory(params object[] parameters); + public virtual IChannelFactory BuildChannelFactory(BindingParameterCollection parameters); + public bool CanBuildChannelFactory(params object[] parameters); + public virtual bool CanBuildChannelFactory(BindingParameterCollection parameters); + public abstract BindingElementCollection CreateBindingElements(); + public T GetProperty(BindingParameterCollection parameters) where T : class; + } + public class BindingContext { + public BindingContext(CustomBinding binding, BindingParameterCollection parameters); + public CustomBinding Binding { get; } + public BindingParameterCollection BindingParameters { get; } + public Uri ListenUriBaseAddress { get; set; } + public ListenUriMode ListenUriMode { get; set; } + public string ListenUriRelativeAddress { get; set; } + public BindingElementCollection RemainingBindingElements { get; } + public IChannelFactory BuildInnerChannelFactory(); + public bool CanBuildInnerChannelFactory(); + public BindingContext Clone(); + public T GetInnerProperty() where T : class; + } + public abstract class BindingElement { + protected BindingElement(); + protected BindingElement(BindingElement elementToBeCloned); + public virtual IChannelFactory BuildChannelFactory(BindingContext context); + public virtual bool CanBuildChannelFactory(BindingContext context); + public abstract BindingElement Clone(); + public abstract T GetProperty(BindingContext context) where T : class; + } + public class BindingElementCollection : Collection { + public BindingElementCollection(); + public BindingElementCollection(IEnumerable elements); + public BindingElementCollection(BindingElement[] elements); + public void AddRange(params BindingElement[] elements); + public BindingElementCollection Clone(); + public bool Contains(Type bindingElementType); + public T Find(); + public Collection FindAll(); + protected override void InsertItem(int index, BindingElement item); + public T Remove(); + public Collection RemoveAll(); + protected override void SetItem(int index, BindingElement item); + } + public class BindingParameterCollection : KeyedCollection { + public BindingParameterCollection(); + protected override Type GetKeyForItem(object item); + protected override void InsertItem(int index, object item); + protected override void SetItem(int index, object item); + } + public abstract class BodyWriter { + protected BodyWriter(bool isBuffered); + public bool IsBuffered { get; } + public IAsyncResult BeginWriteBodyContents(XmlDictionaryWriter writer, AsyncCallback callback, object state); + public BodyWriter CreateBufferedCopy(int maxBufferSize); + public void EndWriteBodyContents(IAsyncResult result); + protected virtual IAsyncResult OnBeginWriteBodyContents(XmlDictionaryWriter writer, AsyncCallback callback, object state); + protected virtual BodyWriter OnCreateBufferedCopy(int maxBufferSize); + protected virtual void OnEndWriteBodyContents(IAsyncResult result); + protected abstract void OnWriteBodyContents(XmlDictionaryWriter writer); + protected virtual Task OnWriteBodyContentsAsync(XmlDictionaryWriter writer); + public void WriteBodyContents(XmlDictionaryWriter writer); + } + public abstract class BufferManager { + protected BufferManager(); + public abstract void Clear(); + public static BufferManager CreateBufferManager(long maxBufferPoolSize, int maxBufferSize); + public abstract void ReturnBuffer(byte[] buffer); + public abstract byte[] TakeBuffer(int bufferSize); + } + public abstract class ChannelBase : CommunicationObject, IChannel, ICommunicationObject, IDefaultCommunicationTimeouts { + protected ChannelBase(ChannelManagerBase channelManager); + protected override TimeSpan DefaultCloseTimeout { get; } + protected override TimeSpan DefaultOpenTimeout { get; } + protected TimeSpan DefaultReceiveTimeout { get; } + protected TimeSpan DefaultSendTimeout { get; } + protected ChannelManagerBase Manager { get; } + TimeSpan System.ServiceModel.IDefaultCommunicationTimeouts.CloseTimeout { get; } + TimeSpan System.ServiceModel.IDefaultCommunicationTimeouts.OpenTimeout { get; } + TimeSpan System.ServiceModel.IDefaultCommunicationTimeouts.ReceiveTimeout { get; } + TimeSpan System.ServiceModel.IDefaultCommunicationTimeouts.SendTimeout { get; } + public virtual T GetProperty() where T : class; + protected override void OnClosed(); + } + public abstract class ChannelFactoryBase : ChannelManagerBase, IChannelFactory, ICommunicationObject { + protected ChannelFactoryBase(); + protected ChannelFactoryBase(IDefaultCommunicationTimeouts timeouts); + protected override TimeSpan DefaultCloseTimeout { get; } + protected override TimeSpan DefaultOpenTimeout { get; } + protected override TimeSpan DefaultReceiveTimeout { get; } + protected override TimeSpan DefaultSendTimeout { get; } + public virtual T GetProperty() where T : class; + protected override void OnAbort(); + protected override IAsyncResult OnBeginClose(TimeSpan timeout, AsyncCallback callback, object state); + protected override void OnClose(TimeSpan timeout); + protected internal override Task OnCloseAsync(TimeSpan timeout); + protected override void OnEndClose(IAsyncResult result); + } + public abstract class ChannelFactoryBase : ChannelFactoryBase, IChannelFactory, IChannelFactory, ICommunicationObject { + protected ChannelFactoryBase(); + protected ChannelFactoryBase(IDefaultCommunicationTimeouts timeouts); + public TChannel CreateChannel(EndpointAddress address); + public TChannel CreateChannel(EndpointAddress address, Uri via); + protected override void OnAbort(); + protected override IAsyncResult OnBeginClose(TimeSpan timeout, AsyncCallback callback, object state); + protected override void OnClose(TimeSpan timeout); + protected internal override Task OnCloseAsync(TimeSpan timeout); + protected abstract TChannel OnCreateChannel(EndpointAddress address, Uri via); + protected override void OnEndClose(IAsyncResult result); + protected void ValidateCreateChannel(); + } + public abstract class ChannelManagerBase : CommunicationObject, IDefaultCommunicationTimeouts { + protected ChannelManagerBase(); + protected abstract TimeSpan DefaultReceiveTimeout { get; } + protected abstract TimeSpan DefaultSendTimeout { get; } + TimeSpan System.ServiceModel.IDefaultCommunicationTimeouts.CloseTimeout { get; } + TimeSpan System.ServiceModel.IDefaultCommunicationTimeouts.OpenTimeout { get; } + TimeSpan System.ServiceModel.IDefaultCommunicationTimeouts.ReceiveTimeout { get; } + TimeSpan System.ServiceModel.IDefaultCommunicationTimeouts.SendTimeout { get; } + } + public class ChannelParameterCollection : Collection { + public ChannelParameterCollection(); + public ChannelParameterCollection(IChannel channel); + protected virtual IChannel Channel { get; } + protected override void ClearItems(); + protected override void InsertItem(int index, object item); + public void PropagateChannelParameters(IChannel innerChannel); + protected override void RemoveItem(int index); + protected override void SetItem(int index, object item); + } + public abstract class ClientWebSocketFactory { + protected ClientWebSocketFactory(); + public abstract Task CreateWebSocketAsync(Uri address, WebHeaderCollection headers, ICredentials credentials, WebSocketTransportSettings settings, TimeoutHelper timeoutHelper); + public static ClientWebSocketFactory GetFactory(); + } + public abstract class CommunicationObject : ICommunicationObject { + protected CommunicationObject(); + protected CommunicationObject(object mutex); + protected abstract TimeSpan DefaultCloseTimeout { get; } + protected abstract TimeSpan DefaultOpenTimeout { get; } + protected bool IsDisposed { get; } + public CommunicationState State { get; } + protected object ThisLock { get; } + public event EventHandler Closed; + public event EventHandler Closing; + public event EventHandler Faulted; + public event EventHandler Opened; + public event EventHandler Opening; + public void Abort(); + public IAsyncResult BeginClose(AsyncCallback callback, object state); + public IAsyncResult BeginClose(TimeSpan timeout, AsyncCallback callback, object state); + public IAsyncResult BeginOpen(AsyncCallback callback, object state); + public IAsyncResult BeginOpen(TimeSpan timeout, AsyncCallback callback, object state); + public void Close(); + public void Close(TimeSpan timeout); + public void EndClose(IAsyncResult result); + public void EndOpen(IAsyncResult result); + protected void Fault(); + protected virtual Type GetCommunicationObjectType(); + protected abstract void OnAbort(); + protected abstract IAsyncResult OnBeginClose(TimeSpan timeout, AsyncCallback callback, object state); + protected abstract IAsyncResult OnBeginOpen(TimeSpan timeout, AsyncCallback callback, object state); + protected abstract void OnClose(TimeSpan timeout); + protected internal virtual Task OnCloseAsync(TimeSpan timeout); + protected virtual void OnClosed(); + protected virtual void OnClosing(); + protected abstract void OnEndClose(IAsyncResult result); + protected abstract void OnEndOpen(IAsyncResult result); + protected virtual void OnFaulted(); + protected abstract void OnOpen(TimeSpan timeout); + protected internal virtual Task OnOpenAsync(TimeSpan timeout); + protected virtual void OnOpened(); + protected virtual void OnOpening(); + public void Open(); + public void Open(TimeSpan timeout); + Task System.ServiceModel.IAsyncCommunicationObject.CloseAsync(TimeSpan timeout); + Task System.ServiceModel.IAsyncCommunicationObject.OpenAsync(TimeSpan timeout); + protected internal void ThrowIfDisposed(); + protected internal void ThrowIfDisposedOrImmutable(); + protected internal void ThrowIfDisposedOrNotOpen(); + } + public static class CommunicationObjectInternal { + public static TimeSpan GetInternalCloseTimeout(this CommunicationObject communicationObject); + public static IAsyncResult OnBeginClose(CommunicationObject communicationObject, TimeSpan timeout, AsyncCallback callback, object state); + public static IAsyncResult OnBeginOpen(CommunicationObject communicationObject, TimeSpan timeout, AsyncCallback callback, object state); + public static void OnClose(CommunicationObject communicationObject, TimeSpan timeout); + public static Task OnCloseAsyncInternal(CommunicationObject communicationObject, TimeSpan timeout); + public static void OnEnd(IAsyncResult result); + public static void OnOpen(CommunicationObject communicationObject, TimeSpan timeout); + public static Task OnOpenAsyncInternal(CommunicationObject communicationObject, TimeSpan timeout); + public static void ThrowIfClosed(CommunicationObject communicationObject); + public static void ThrowIfClosedOrOpened(CommunicationObject communicationObject); + public static void ThrowIfDisposed(CommunicationObject communicationObject); + public static void ThrowIfDisposedOrNotOpen(CommunicationObject communicationObject); + } + public abstract class CommunicationPool where TKey : class where TItem : class { + protected CommunicationPool(int maxCount); + public int MaxIdleConnectionPoolCount { get; } + protected object ThisLock { get; } + protected abstract void AbortItem(TItem item); + public void AddConnection(TKey key, TItem connection, TimeSpan timeout); + public bool Close(TimeSpan timeout); + protected abstract void CloseItem(TItem item, TimeSpan timeout); + protected abstract void CloseItemAsync(TItem item, TimeSpan timeout); + protected virtual CommunicationPool.EndpointConnectionPool CreateEndpointConnectionPool(TKey key); + protected abstract TKey GetPoolKey(EndpointAddress address, Uri via); + protected virtual void OnClosed(); + public void ReturnConnection(TKey key, TItem connection, bool connectionIsStillGood, TimeSpan timeout); + public TItem TakeConnection(EndpointAddress address, Uri via, TimeSpan timeout, out TKey key); + public bool TryOpen(); + protected class EndpointConnectionPool { + public EndpointConnectionPool(CommunicationPool parent, TKey key); + protected TKey Key { get; } + protected CommunicationPool Parent { get; } + protected object ThisLock { get; } + public void Abort(); + protected virtual void AbortItem(TItem item); + public void AddConnection(TItem connection, TimeSpan timeout); + public void Close(TimeSpan timeout); + public void CloseIdleConnection(TItem connection, TimeSpan timeout); + public bool CloseIfEmpty(); + protected virtual void CloseItem(TItem item, TimeSpan timeout); + protected virtual void CloseItemAsync(TItem item, TimeSpan timeout); + protected virtual CommunicationPool.IdleConnectionPool GetIdleConnectionPool(); + protected virtual void OnConnectionAborted(); + public virtual void Prune(List itemsToClose); + public void ReturnConnection(TItem connection, bool connectionIsStillGood, TimeSpan timeout); + public TItem TakeConnection(TimeSpan timeout); + protected class PoolIdleConnectionPool : CommunicationPool.IdleConnectionPool { + public PoolIdleConnectionPool(int maxCount); + public override int Count { get; } + public override bool Add(TItem connection); + public override bool Return(TItem connection); + public override TItem Take(out bool closeItem); + } + } + protected abstract class IdleConnectionPool { + protected IdleConnectionPool(); + public abstract int Count { get; } + public abstract bool Add(TItem item); + public abstract bool Return(TItem item); + public abstract TItem Take(out bool closeItem); + } + } + public enum CompressionFormat { + Deflate = 2, + GZip = 1, + None = 0, + } + public abstract class ConnectionOrientedTransportBindingElement : TransportBindingElement { + public int ConnectionBufferSize { get; set; } + public int MaxBufferSize { get; set; } + public TransferMode TransferMode { get; set; } + public override bool CanBuildChannelFactory(BindingContext context); + public override T GetProperty(BindingContext context); + } + public static class ConnectionOrientedTransportDefaults { + public const bool AllowNtlm = true; + public const int ConnectionBufferSize = 8192; + public const int MaxContentTypeSize = 256; + public const int MaxOutboundConnectionsPerEndpoint = 10; + public const int MaxPendingAcceptsConst = 0; + public const int MaxPendingConnectionsConst = 0; + public const int MaxViaSize = 2048; + public const ProtectionLevel ProtectionLevel = 2; + public const HostNameComparisonMode HostNameComparisonMode = 0; + public const TransferMode TransferMode = 0; + public const string ChannelInitializationTimeoutString = "00:00:30"; + public const string ConnectionPoolGroupName = "default"; + public const string IdleTimeoutString = "00:02:00"; + public const string MaxOutputDelayString = "00:00:00.2"; + public static TimeSpan ChannelInitializationTimeout { get; } + public static TimeSpan IdleTimeout { get; } + public static TimeSpan MaxOutputDelay { get; } + public static int GetMaxConnections(); + public static int GetMaxPendingAccepts(); + public static int GetMaxPendingConnections(); + } + public abstract class ConnectionPool : IdlingCommunicationPool { + protected ConnectionPool(IConnectionOrientedTransportChannelFactorySettings settings, TimeSpan leaseTimeout); + public string Name { get; } + protected override void AbortItem(IConnection item); + protected override void CloseItem(IConnection item, TimeSpan timeout); + protected override void CloseItemAsync(IConnection item, TimeSpan timeout); + public virtual bool IsCompatible(IConnectionOrientedTransportChannelFactorySettings settings); + } + public abstract class ConnectionPoolRegistry { + protected ConnectionPoolRegistry(); + protected abstract ConnectionPool CreatePool(IConnectionOrientedTransportChannelFactorySettings settings); + public ConnectionPool Lookup(IConnectionOrientedTransportChannelFactorySettings settings); + public void Release(ConnectionPool pool, TimeSpan timeout); + } + public class CustomBinding : Binding { + public CustomBinding(); + public CustomBinding(IEnumerable bindingElementsInTopDownChannelStackOrder); + public CustomBinding(Binding binding); + public CustomBinding(params BindingElement[] bindingElementsInTopDownChannelStackOrder); + public CustomBinding(string name, string ns, params BindingElement[] bindingElementsInTopDownChannelStackOrder); + public BindingElementCollection Elements { get; } + public override string Scheme { get; } + public override BindingElementCollection CreateBindingElements(); + } + public abstract class DelegatingStream : Stream { + protected DelegatingStream(Stream stream); + protected Stream BaseStream { get; } + public override bool CanRead { get; } + public override bool CanSeek { get; } + public override bool CanTimeout { get; } + public override bool CanWrite { get; } + public override long Length { get; } + public override long Position { get; set; } + public override int ReadTimeout { get; set; } + public override int WriteTimeout { get; set; } + public override Task CopyToAsync(Stream destination, int bufferSize, CancellationToken cancellationToken); + protected override void Dispose(bool disposing); + public override void Flush(); + public override Task FlushAsync(CancellationToken cancellationToken); + public override int Read(byte[] buffer, int offset, int count); + public override Task ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken); + public override int ReadByte(); + public override long Seek(long offset, SeekOrigin origin); + public override void SetLength(long value); + public override void Write(byte[] buffer, int offset, int count); + public override Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken); + public override void WriteByte(byte value); + } + public static class EncoderDefaults { + public const int BufferedReadDefaultMaxArrayLength = 2147483647; + public const int BufferedReadDefaultMaxBytesPerRead = 2147483647; + public const int BufferedReadDefaultMaxDepth = 128; + public const int BufferedReadDefaultMaxNameTableCharCount = 2147483647; + public const int BufferedReadDefaultMaxStringContentLength = 2147483647; + public const int MaxArrayLength = 16384; + public const int MaxBytesPerRead = 4096; + public const int MaxDepth = 32; + public const int MaxNameTableCharCount = 16384; + public const int MaxReadPoolSize = 64; + public const int MaxStringContentLength = 8192; + public const int MaxWritePoolSize = 16; + public const CompressionFormat DefaultCompressionFormat = 0; + public static readonly XmlDictionaryReaderQuotas ReaderQuotas; + public static bool IsDefaultReaderQuotas(XmlDictionaryReaderQuotas quotas); + } + public abstract class FaultConverter { + protected FaultConverter(); + public static FaultConverter GetDefaultFaultConverter(MessageVersion version); + protected abstract bool OnTryCreateException(Message message, MessageFault fault, out Exception exception); + protected abstract bool OnTryCreateFaultMessage(Exception exception, out Message message); + public bool TryCreateException(Message message, MessageFault fault, out Exception exception); + public bool TryCreateFaultMessage(Exception exception, out Message message); + } + public class HttpMessageHandlerFactory { + [MethodImpl(NoInlining)]protected HttpMessageHandlerFactory(); + [MethodImpl(NoInlining)]public HttpMessageHandlerFactory(Func> handlers); + [MethodImpl(NoInlining)]public HttpMessageHandlerFactory(params Type[] handlers); + [MethodImpl(NoInlining)]public HttpMessageHandler Create(HttpMessageHandler innerChannel); + protected virtual HttpMessageHandler OnCreate(HttpMessageHandler innerChannel); + } + public static class HttpRequestMessageExtensionMethods { + public static bool CreateContentIfNull(this HttpRequestMessage httpRequestMessage); + } + public sealed class HttpRequestMessageProperty : IMessageProperty { + public HttpRequestMessageProperty(); + public WebHeaderCollection Headers { get; } + public HttpRequestMessage HttpRequestMessage { get; } + public string Method { get; set; } + public static string Name { get; } + public string QueryString { get; set; } + public bool SuppressEntityBody { get; set; } + IMessageProperty System.ServiceModel.Channels.IMessageProperty.CreateCopy(); + } + public sealed class HttpResponseMessageProperty : IMessageProperty { + public HttpResponseMessageProperty(); + public WebHeaderCollection Headers { get; } + public HttpResponseMessage HttpResponseMessage { get; } + public static string Name { get; } + public HttpStatusCode StatusCode { get; set; } + public string StatusDescription { get; set; } + public bool SuppressEntityBody { get; set; } + public bool SuppressPreamble { get; set; } + IMessageProperty System.ServiceModel.Channels.IMessageProperty.CreateCopy(); + } + public class HttpsTransportBindingElement : HttpTransportBindingElement { + public HttpsTransportBindingElement(); + protected HttpsTransportBindingElement(HttpsTransportBindingElement elementToBeCloned); + public bool RequireClientCertificate { get; set; } + public override string Scheme { get; } + public override IChannelFactory BuildChannelFactory(BindingContext context); + public override BindingElement Clone(); + public override T GetProperty(BindingContext context); + } + public class HttpTransportBindingElement : TransportBindingElement { + public HttpTransportBindingElement(); + protected HttpTransportBindingElement(HttpTransportBindingElement elementToBeCloned); + public bool AllowCookies { get; set; } + public AuthenticationSchemes AuthenticationScheme { get; set; } + public bool DecompressionEnabled { get; set; } + public ExtendedProtectionPolicy ExtendedProtectionPolicy { get; set; } + public HostNameComparisonMode HostNameComparisonMode { get; set; } + public bool KeepAliveEnabled { get; set; } + public int MaxBufferSize { get; set; } + public int MaxPendingAccepts { get; set; } + public HttpMessageHandlerFactory MessageHandlerFactory { get; set; } + public string Realm { get; set; } + public TimeSpan RequestInitializationTimeout { get; set; } + public override string Scheme { get; } + public TransferMode TransferMode { get; set; } + public bool UnsafeConnectionNtlmAuthentication { get; set; } + public bool UseDefaultWebProxy { get; } + public WebSocketTransportSettings WebSocketSettings { get; set; } + public override IChannelFactory BuildChannelFactory(BindingContext context); + public override bool CanBuildChannelFactory(BindingContext context); + public override BindingElement Clone(); + public override T GetProperty(BindingContext context); + } + public static class HttpTransportDefaults { + public const bool AllowCookies = false; + public const bool DecompressionEnabled = true; + public const bool KeepAliveEnabled = true; + public const bool UnsafeConnectionNtlmAuthentication = false; + public const bool UseDefaultWebProxy = true; + public const int DefaultMaxPendingAccepts = 0; + public const int MaxPendingAcceptsUpperLimit = 100000; + public const AuthenticationSchemes AuthenticationScheme = 32768; + public const HttpMessageHandlerFactory MessageHandlerFactory = null; + public const HostNameComparisonMode HostNameComparisonMode = 0; + public const TransferMode TransferMode = 0; + public const string ConnectionHeader = "Connection"; + public const string Realm = ""; + public const string RequestInitializationTimeoutString = "00:00:00"; + public const string UpgradeHeader = "Upgrade"; + public static TimeSpan RequestInitializationTimeout { get; } + public static MessageEncoderFactory GetDefaultMessageEncoderFactory(); + public static WebSocketTransportSettings GetDefaultWebSocketTransportSettings(); + public static int GetEffectiveMaxPendingAccepts(int maxPendingAccepts); + } + public interface IAsyncChannelFactory : IAsyncCommunicationObject, IChannelFactory, ICommunicationObject + public interface IAsyncRequest : IRequestBase { + Task ReceiveReplyAsync(TimeoutHelper timeoutHelper); + Task SendRequestAsync(Message message, TimeoutHelper timeoutHelper); + } + public interface IBindingDeliveryCapabilities { + bool AssuresOrderedDelivery { get; } + bool QueuedDelivery { get; } + } + public interface IBindingMulticastCapabilities { + bool IsMulticast { get; } + } + public interface IBindingRuntimePreferences { + bool ReceiveSynchronously { get; } + } + public interface IChannel : ICommunicationObject { + T GetProperty() where T : class; + } + public interface IChannelFactory : ICommunicationObject { + T GetProperty() where T : class; + } + public interface IChannelFactory : IChannelFactory, ICommunicationObject { + TChannel CreateChannel(EndpointAddress to); + TChannel CreateChannel(EndpointAddress to, Uri via); + } + public interface IChannelListener : ICommunicationObject { + Uri Uri { get; } + IAsyncResult BeginWaitForChannel(TimeSpan timeout, AsyncCallback callback, object state); + bool EndWaitForChannel(IAsyncResult result); + T GetProperty() where T : class; + bool WaitForChannel(TimeSpan timeout); + } + public interface IChannelListener : IChannelListener, ICommunicationObject where TChannel : class, IChannel { + TChannel AcceptChannel(); + TChannel AcceptChannel(TimeSpan timeout); + IAsyncResult BeginAcceptChannel(AsyncCallback callback, object state); + IAsyncResult BeginAcceptChannel(TimeSpan timeout, AsyncCallback callback, object state); + TChannel EndAcceptChannel(IAsyncResult result); + } + public interface IConnection { + byte[] AsyncReadBuffer { get; } + int AsyncReadBufferSize { get; } + void Abort(); + AsyncCompletionResult BeginRead(int offset, int size, TimeSpan timeout, Action callback, object state); + AsyncCompletionResult BeginWrite(byte[] buffer, int offset, int size, bool immediate, TimeSpan timeout, Action callback, object state); + void Close(TimeSpan timeout, bool asyncAndLinger); + int EndRead(); + void EndWrite(); + object GetCoreTransport(); + int Read(byte[] buffer, int offset, int size, TimeSpan timeout); + void Write(byte[] buffer, int offset, int size, bool immediate, TimeSpan timeout); + void Write(byte[] buffer, int offset, int size, bool immediate, TimeSpan timeout, BufferManager bufferManager); + } + public interface IConnectionInitiator { + IConnection Connect(Uri uri, TimeSpan timeout); + Task ConnectAsync(Uri uri, TimeSpan timeout); + } + public interface IConnectionOrientedConnectionSettings { + int ConnectionBufferSize { get; } + TimeSpan IdleTimeout { get; } + TimeSpan MaxOutputDelay { get; } + } + public interface IConnectionOrientedTransportChannelFactorySettings : IConnectionOrientedConnectionSettings, IConnectionOrientedTransportFactorySettings, IDefaultCommunicationTimeouts, ITransportFactorySettings { + string ConnectionPoolGroupName { get; } + int MaxOutboundConnectionsPerEndpoint { get; } + } + public interface IConnectionOrientedTransportFactorySettings : IConnectionOrientedConnectionSettings, IDefaultCommunicationTimeouts, ITransportFactorySettings { + int MaxBufferSize { get; } + TransferMode TransferMode { get; } + StreamUpgradeProvider Upgrade { get; } + } + public abstract class IdlingCommunicationPool : CommunicationPool where TKey : class where TItem : class { + protected IdlingCommunicationPool(int maxCount, TimeSpan idleTimeout, TimeSpan leaseTimeout); + public TimeSpan IdleTimeout { get; } + protected TimeSpan LeaseTimeout { get; } + protected override void CloseItemAsync(TItem item, TimeSpan timeout); + protected override CommunicationPool.EndpointConnectionPool CreateEndpointConnectionPool(TKey key); + protected class IdleTimeoutEndpointConnectionPool : CommunicationPool.EndpointConnectionPool { + public IdleTimeoutEndpointConnectionPool(IdlingCommunicationPool parent, TKey key); + protected override void AbortItem(TItem item); + protected override void CloseItem(TItem item, TimeSpan timeout); + protected override void CloseItemAsync(TItem item, TimeSpan timeout); + protected override CommunicationPool.IdleConnectionPool GetIdleConnectionPool(); + public override void Prune(List itemsToClose); + protected class IdleTimeoutIdleConnectionPool : CommunicationPool.EndpointConnectionPool.PoolIdleConnectionPool { + public IdleTimeoutIdleConnectionPool(IdlingCommunicationPool.IdleTimeoutEndpointConnectionPool parent, object thisLock); + public override bool Add(TItem connection); + public void OnItemClosing(TItem connection); + public void Prune(List itemsToClose, bool calledFromTimer); + public override bool Return(TItem connection); + public override TItem Take(out bool closeItem); + } + } + } + public interface IDuplexChannel : IChannel, ICommunicationObject, IInputChannel, IOutputChannel + public interface IDuplexSession : IInputSession, IOutputSession, ISession { + IAsyncResult BeginCloseOutputSession(AsyncCallback callback, object state); + IAsyncResult BeginCloseOutputSession(TimeSpan timeout, AsyncCallback callback, object state); + void CloseOutputSession(); + void CloseOutputSession(TimeSpan timeout); + void EndCloseOutputSession(IAsyncResult result); + } + public interface IDuplexSessionChannel : IChannel, ICommunicationObject, IDuplexChannel, IInputChannel, IOutputChannel, ISessionChannel + public interface IHttpCookieContainerManager { + CookieContainer CookieContainer { get; set; } + } + public interface IInputChannel : IChannel, ICommunicationObject { + EndpointAddress LocalAddress { get; } + IAsyncResult BeginReceive(AsyncCallback callback, object state); + IAsyncResult BeginReceive(TimeSpan timeout, AsyncCallback callback, object state); + IAsyncResult BeginTryReceive(TimeSpan timeout, AsyncCallback callback, object state); + IAsyncResult BeginWaitForMessage(TimeSpan timeout, AsyncCallback callback, object state); + Message EndReceive(IAsyncResult result); + bool EndTryReceive(IAsyncResult result, out Message message); + bool EndWaitForMessage(IAsyncResult result); + Message Receive(); + Message Receive(TimeSpan timeout); + bool TryReceive(TimeSpan timeout, out Message message); + bool WaitForMessage(TimeSpan timeout); + } + public interface IInputSession : ISession + public interface IInputSessionChannel : IChannel, ICommunicationObject, IInputChannel, ISessionChannel + public interface IMessageProperty { + IMessageProperty CreateCopy(); + } + public interface IMessageSource { + Message Receive(TimeSpan timeout); + Task ReceiveAsync(TimeSpan timeout); + bool WaitForMessage(TimeSpan timeout); + Task WaitForMessageAsync(TimeSpan timeout); + } + public interface IOutputChannel : IChannel, ICommunicationObject { + EndpointAddress RemoteAddress { get; } + Uri Via { get; } + IAsyncResult BeginSend(Message message, AsyncCallback callback, object state); + IAsyncResult BeginSend(Message message, TimeSpan timeout, AsyncCallback callback, object state); + void EndSend(IAsyncResult result); + void Send(Message message); + void Send(Message message, TimeSpan timeout); + } + public interface IOutputSession : ISession + public interface IOutputSessionChannel : IChannel, ICommunicationObject, IOutputChannel, ISessionChannel + public interface IReceiveContextSettings { + bool Enabled { get; set; } + TimeSpan ValidityDuration { get; } + } + public interface IReplyChannel : IChannel, ICommunicationObject { + EndpointAddress LocalAddress { get; } + IAsyncResult BeginReceiveRequest(AsyncCallback callback, object state); + IAsyncResult BeginReceiveRequest(TimeSpan timeout, AsyncCallback callback, object state); + IAsyncResult BeginTryReceiveRequest(TimeSpan timeout, AsyncCallback callback, object state); + IAsyncResult BeginWaitForRequest(TimeSpan timeout, AsyncCallback callback, object state); + RequestContext EndReceiveRequest(IAsyncResult result); + bool EndTryReceiveRequest(IAsyncResult result, out RequestContext context); + bool EndWaitForRequest(IAsyncResult result); + RequestContext ReceiveRequest(); + RequestContext ReceiveRequest(TimeSpan timeout); + bool TryReceiveRequest(TimeSpan timeout, out RequestContext context); + bool WaitForRequest(TimeSpan timeout); + } + public interface IReplySessionChannel : IChannel, ICommunicationObject, IReplyChannel, ISessionChannel + public interface IRequestBase { + void Abort(RequestChannel requestChannel); + void Fault(RequestChannel requestChannel); + void OnReleaseRequest(); + } + public interface IRequestChannel : IChannel, ICommunicationObject { + EndpointAddress RemoteAddress { get; } + Uri Via { get; } + IAsyncResult BeginRequest(Message message, AsyncCallback callback, object state); + IAsyncResult BeginRequest(Message message, TimeSpan timeout, AsyncCallback callback, object state); + Message EndRequest(IAsyncResult result); + Message Request(Message message); + Message Request(Message message, TimeSpan timeout); + } + public interface IRequestSessionChannel : IChannel, ICommunicationObject, IRequestChannel, ISessionChannel + public interface ISecurityCapabilities { + ProtectionLevel SupportedRequestProtectionLevel { get; } + ProtectionLevel SupportedResponseProtectionLevel { get; } + bool SupportsClientAuthentication { get; } + bool SupportsClientWindowsIdentity { get; } + bool SupportsServerAuthentication { get; } + } + public interface ISession { + string Id { get; } + } + public interface ISessionChannel where TSession : ISession { + TSession Session { get; } + } + public interface ITcpChannelFactorySettings : IConnectionOrientedConnectionSettings, IConnectionOrientedTransportChannelFactorySettings, IConnectionOrientedTransportFactorySettings, IDefaultCommunicationTimeouts, ITransportFactorySettings { + TimeSpan LeaseTimeout { get; } + } + public interface ITransportCompressionSupport { + bool IsCompressionFormatSupported(CompressionFormat compressionFormat); + } + public interface ITransportFactorySettings : IDefaultCommunicationTimeouts { + BufferManager BufferManager { get; } + bool ManualAddressing { get; } + long MaxReceivedMessageSize { get; } + MessageEncoderFactory MessageEncoderFactory { get; } + MessageVersion MessageVersion { get; } + } + public sealed class LocalClientSecuritySettings { + public LocalClientSecuritySettings(); + public bool CacheCookies { get; set; } + public int CookieRenewalThresholdPercentage { get; set; } + public bool DetectReplays { get; set; } + public IdentityVerifier IdentityVerifier { get; set; } + public TimeSpan MaxClockSkew { get; set; } + public TimeSpan MaxCookieCachingTime { get; set; } + public NonceCache NonceCache { get; set; } + public bool ReconnectTransportOnFailure { get; set; } + public int ReplayCacheSize { get; set; } + public TimeSpan ReplayWindow { get; set; } + public TimeSpan SessionKeyRenewalInterval { get; set; } + public TimeSpan SessionKeyRolloverInterval { get; set; } + public TimeSpan TimestampValidityDuration { get; set; } + public LocalClientSecuritySettings Clone(); + } + public class MaxMessageSizeStream : DelegatingStream { + public MaxMessageSizeStream(Stream stream, long maxMessageSize); + public static Exception CreateMaxReceivedMessageSizeExceededException(long maxMessageSize); + public override int Read(byte[] buffer, int offset, int count); + public override Task ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken); + public override int ReadByte(); + public override void Write(byte[] buffer, int offset, int count); + public override Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken); + public override void WriteByte(byte value); + } + public abstract class Message : IDisposable { + protected Message(); + public abstract MessageHeaders Headers { get; } + protected bool IsDisposed { get; } + public virtual bool IsEmpty { get; } + public virtual bool IsFault { get; } + public abstract MessageProperties Properties { get; } + public MessageState State { get; } + public abstract MessageVersion Version { get; } + public IAsyncResult BeginWriteBodyContents(XmlDictionaryWriter writer, AsyncCallback callback, object state); + public IAsyncResult BeginWriteMessage(XmlDictionaryWriter writer, AsyncCallback callback, object state); + public void Close(); + public MessageBuffer CreateBufferedCopy(int maxBufferSize); + public static Message CreateMessage(MessageVersion version, MessageFault fault, string action); + public static Message CreateMessage(MessageVersion version, FaultCode faultCode, string reason, object detail, string action); + public static Message CreateMessage(MessageVersion version, FaultCode faultCode, string reason, string action); + public static Message CreateMessage(MessageVersion version, string action); + public static Message CreateMessage(MessageVersion version, string action, object body); + public static Message CreateMessage(MessageVersion version, string action, object body, XmlObjectSerializer serializer); + public static Message CreateMessage(MessageVersion version, string action, BodyWriter body); + public static Message CreateMessage(MessageVersion version, string action, XmlDictionaryReader body); + public static Message CreateMessage(MessageVersion version, string action, XmlReader body); + public static Message CreateMessage(XmlDictionaryReader envelopeReader, int maxSizeOfHeaders, MessageVersion version); + public static Message CreateMessage(XmlReader envelopeReader, int maxSizeOfHeaders, MessageVersion version); + public void EndWriteBodyContents(IAsyncResult result); + public void EndWriteMessage(IAsyncResult result); + public T GetBody(); + public T GetBody(XmlObjectSerializer serializer); + public string GetBodyAttribute(string localName, string ns); + public XmlDictionaryReader GetReaderAtBodyContents(); + protected virtual IAsyncResult OnBeginWriteBodyContents(XmlDictionaryWriter writer, AsyncCallback callback, object state); + protected virtual IAsyncResult OnBeginWriteMessage(XmlDictionaryWriter writer, AsyncCallback callback, object state); + protected virtual void OnBodyToString(XmlDictionaryWriter writer); + protected virtual void OnClose(); + protected virtual MessageBuffer OnCreateBufferedCopy(int maxBufferSize); + protected virtual void OnEndWriteBodyContents(IAsyncResult result); + protected virtual void OnEndWriteMessage(IAsyncResult result); + protected virtual T OnGetBody(XmlDictionaryReader reader); + protected virtual string OnGetBodyAttribute(string localName, string ns); + protected virtual XmlDictionaryReader OnGetReaderAtBodyContents(); + protected abstract void OnWriteBodyContents(XmlDictionaryWriter writer); + protected virtual Task OnWriteBodyContentsAsync(XmlDictionaryWriter writer); + protected virtual void OnWriteMessage(XmlDictionaryWriter writer); + public virtual Task OnWriteMessageAsync(XmlDictionaryWriter writer); + protected virtual void OnWriteStartBody(XmlDictionaryWriter writer); + protected virtual void OnWriteStartEnvelope(XmlDictionaryWriter writer); + protected virtual void OnWriteStartHeaders(XmlDictionaryWriter writer); + void System.IDisposable.Dispose(); + public override string ToString(); + public void WriteBody(XmlDictionaryWriter writer); + public void WriteBody(XmlWriter writer); + public void WriteBodyContents(XmlDictionaryWriter writer); + public Task WriteBodyContentsAsync(XmlDictionaryWriter writer); + public void WriteMessage(XmlDictionaryWriter writer); + public void WriteMessage(XmlWriter writer); + public virtual Task WriteMessageAsync(XmlDictionaryWriter writer); + public virtual Task WriteMessageAsync(XmlWriter writer); + public void WriteStartBody(XmlDictionaryWriter writer); + public void WriteStartBody(XmlWriter writer); + public void WriteStartEnvelope(XmlDictionaryWriter writer); + } + public abstract class MessageBuffer : IDisposable { + protected MessageBuffer(); + public abstract int BufferSize { get; } + public virtual string MessageContentType { get; } + public abstract void Close(); + public abstract Message CreateMessage(); + void System.IDisposable.Dispose(); + public virtual void WriteMessage(Stream stream); + } + public abstract class MessageEncoder { + protected MessageEncoder(); + public abstract string ContentType { get; } + public abstract string MediaType { get; } + public abstract MessageVersion MessageVersion { get; } + public virtual IAsyncResult BeginWriteMessage(Message message, Stream stream, AsyncCallback callback, object state); + public virtual void EndWriteMessage(IAsyncResult result); + public virtual T GetProperty() where T : class; + public virtual bool IsContentTypeSupported(string contentType); + public Message ReadMessage(ArraySegment buffer, BufferManager bufferManager); + public abstract Message ReadMessage(ArraySegment buffer, BufferManager bufferManager, string contentType); + public Message ReadMessage(Stream stream, int maxSizeOfHeaders); + public abstract Message ReadMessage(Stream stream, int maxSizeOfHeaders, string contentType); + public virtual Task ReadMessageAsync(ArraySegment buffer, BufferManager bufferManager, string contentType); + public virtual Task ReadMessageAsync(Stream stream, int maxSizeOfHeaders, string contentType); + public override string ToString(); + public ArraySegment WriteMessage(Message message, int maxMessageSize, BufferManager bufferManager); + public abstract ArraySegment WriteMessage(Message message, int maxMessageSize, BufferManager bufferManager, int messageOffset); + public abstract void WriteMessage(Message message, Stream stream); + public virtual Task> WriteMessageAsync(Message message, int maxMessageSize, BufferManager bufferManager, int messageOffset); + public virtual Task WriteMessageAsync(Message message, Stream stream); + } + public abstract class MessageEncoderFactory { + protected MessageEncoderFactory(); + public abstract MessageEncoder Encoder { get; } + public abstract MessageVersion MessageVersion { get; } + public virtual MessageEncoder CreateSessionEncoder(); + } + public abstract class MessageEncodingBindingElement : BindingElement { + protected MessageEncodingBindingElement(); + protected MessageEncodingBindingElement(MessageEncodingBindingElement elementToBeCloned); + public abstract MessageVersion MessageVersion { get; set; } + public abstract MessageEncoderFactory CreateMessageEncoderFactory(); + public override T GetProperty(BindingContext context); + } + public abstract class MessageFault { + protected MessageFault(); + public virtual string Actor { get; } + public abstract FaultCode Code { get; } + public abstract bool HasDetail { get; } + public bool IsMustUnderstandFault { get; } + public virtual string Node { get; } + public abstract FaultReason Reason { get; } + public static MessageFault CreateFault(Message message, int maxBufferSize); + public static MessageFault CreateFault(FaultCode code, FaultReason reason); + public static MessageFault CreateFault(FaultCode code, FaultReason reason, object detail); + public static MessageFault CreateFault(FaultCode code, FaultReason reason, object detail, XmlObjectSerializer serializer); + public static MessageFault CreateFault(FaultCode code, FaultReason reason, object detail, XmlObjectSerializer serializer, string actor); + public static MessageFault CreateFault(FaultCode code, FaultReason reason, object detail, XmlObjectSerializer serializer, string actor, string node); + public static MessageFault CreateFault(FaultCode code, string reason); + public T GetDetail(); + public T GetDetail(XmlObjectSerializer serializer); + public XmlDictionaryReader GetReaderAtDetailContents(); + protected virtual XmlDictionaryReader OnGetReaderAtDetailContents(); + protected virtual void OnWriteDetail(XmlDictionaryWriter writer, EnvelopeVersion version); + protected abstract void OnWriteDetailContents(XmlDictionaryWriter writer); + protected virtual void OnWriteStartDetail(XmlDictionaryWriter writer, EnvelopeVersion version); + public static bool WasHeaderNotUnderstood(MessageHeaders headers, string name, string ns); + public void WriteTo(XmlDictionaryWriter writer, EnvelopeVersion version); + public void WriteTo(XmlWriter writer, EnvelopeVersion version); + } + public abstract class MessageHeader : MessageHeaderInfo { + protected MessageHeader(); + public override string Actor { get; } + public override bool IsReferenceParameter { get; } + public override bool MustUnderstand { get; } + public override bool Relay { get; } + public static MessageHeader CreateHeader(string name, string ns, object value); + public static MessageHeader CreateHeader(string name, string ns, object value, bool mustUnderstand); + public static MessageHeader CreateHeader(string name, string ns, object value, bool mustUnderstand, string actor); + public static MessageHeader CreateHeader(string name, string ns, object value, bool mustUnderstand, string actor, bool relay); + public static MessageHeader CreateHeader(string name, string ns, object value, XmlObjectSerializer serializer); + public static MessageHeader CreateHeader(string name, string ns, object value, XmlObjectSerializer serializer, bool mustUnderstand); + public static MessageHeader CreateHeader(string name, string ns, object value, XmlObjectSerializer serializer, bool mustUnderstand, string actor); + public static MessageHeader CreateHeader(string name, string ns, object value, XmlObjectSerializer serializer, bool mustUnderstand, string actor, bool relay); + public virtual bool IsMessageVersionSupported(MessageVersion messageVersion); + protected abstract void OnWriteHeaderContents(XmlDictionaryWriter writer, MessageVersion messageVersion); + protected virtual void OnWriteStartHeader(XmlDictionaryWriter writer, MessageVersion messageVersion); + public override string ToString(); + public void WriteHeader(XmlDictionaryWriter writer, MessageVersion messageVersion); + public void WriteHeader(XmlWriter writer, MessageVersion messageVersion); + protected void WriteHeaderAttributes(XmlDictionaryWriter writer, MessageVersion messageVersion); + public void WriteHeaderContents(XmlDictionaryWriter writer, MessageVersion messageVersion); + public void WriteStartHeader(XmlDictionaryWriter writer, MessageVersion messageVersion); + } + public abstract class MessageHeaderInfo { + protected MessageHeaderInfo(); + public abstract string Actor { get; } + public abstract bool IsReferenceParameter { get; } + public abstract bool MustUnderstand { get; } + public abstract string Name { get; } + public abstract string Namespace { get; } + public abstract bool Relay { get; } + } + public sealed class MessageHeaders : IEnumerable, IEnumerable { + public MessageHeaders(MessageHeaders collection); + public MessageHeaders(MessageVersion version); + public MessageHeaders(MessageVersion version, int initialSize); + public string Action { get; set; } + public int Count { get; } + public EndpointAddress FaultTo { get; set; } + public EndpointAddress From { get; set; } + public UniqueId MessageId { get; set; } + public MessageVersion MessageVersion { get; } + public UniqueId RelatesTo { get; set; } + public EndpointAddress ReplyTo { get; set; } + public MessageHeaderInfo this[int index] { get; } + public Uri To { get; set; } + public UnderstoodHeaders UnderstoodHeaders { get; } + public void Add(MessageHeader header); + public void Clear(); + public void CopyHeaderFrom(Message message, int headerIndex); + public void CopyHeaderFrom(MessageHeaders collection, int headerIndex); + public void CopyHeadersFrom(Message message); + public void CopyHeadersFrom(MessageHeaders collection); + public void CopyTo(MessageHeaderInfo[] array, int index); + public int FindHeader(string name, string ns); + public int FindHeader(string name, string ns, params string[] actors); + public IEnumerator GetEnumerator(); + public T GetHeader(int index); + public T GetHeader(int index, XmlObjectSerializer serializer); + public T GetHeader(string name, string ns); + public T GetHeader(string name, string ns, XmlObjectSerializer serializer); + public T GetHeader(string name, string ns, params string[] actors); + public XmlDictionaryReader GetReaderAtHeader(int headerIndex); + public bool HaveMandatoryHeadersBeenUnderstood(); + public bool HaveMandatoryHeadersBeenUnderstood(params string[] actors); + public void Insert(int headerIndex, MessageHeader header); + public void RemoveAll(string name, string ns); + public void RemoveAt(int headerIndex); + public void SetAction(XmlDictionaryString action); + IEnumerator System.Collections.IEnumerable.GetEnumerator(); + public void WriteHeader(int headerIndex, XmlDictionaryWriter writer); + public void WriteHeader(int headerIndex, XmlWriter writer); + public void WriteHeaderContents(int headerIndex, XmlDictionaryWriter writer); + public void WriteHeaderContents(int headerIndex, XmlWriter writer); + public void WriteStartHeader(int headerIndex, XmlDictionaryWriter writer); + public void WriteStartHeader(int headerIndex, XmlWriter writer); + } + public sealed class MessageProperties : ICollection>, IDictionary, IDisposable, IEnumerable, IEnumerable> { + public MessageProperties(); + public MessageProperties(MessageProperties properties); + public bool AllowOutputBatching { get; set; } + public int Count { get; } + public MessageEncoder Encoder { get; set; } + public bool IsFixedSize { get; } + public bool IsReadOnly { get; } + public ICollection Keys { get; } + public SecurityMessageProperty Security { get; set; } + bool System.Collections.Generic.ICollection>.IsReadOnly { get; } + public object this[string name] { get; set; } + public ICollection Values { get; } + public Uri Via { get; set; } + public void Add(string name, object property); + public void Clear(); + public bool ContainsKey(string name); + public void CopyProperties(MessageProperties properties); + public void Dispose(); + public bool Remove(string name); + void System.Collections.Generic.ICollection>.Add(KeyValuePair pair); + bool System.Collections.Generic.ICollection>.Contains(KeyValuePair pair); + void System.Collections.Generic.ICollection>.CopyTo(KeyValuePair[] array, int index); + bool System.Collections.Generic.ICollection>.Remove(KeyValuePair pair); + IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator(); + IEnumerator System.Collections.IEnumerable.GetEnumerator(); + public bool TryGetValue(string name, out object value); + } + public enum MessageState { + Closed = 4, + Copied = 3, + Created = 0, + Read = 1, + Written = 2, + } + public sealed class MessageVersion { + public AddressingVersion Addressing { get; } + public static MessageVersion Default { get; } + public EnvelopeVersion Envelope { get; } + public static MessageVersion None { get; } + public static MessageVersion Soap11 { get; } + public static MessageVersion Soap11WSAddressing10 { get; } + public static MessageVersion Soap12 { get; } + public static MessageVersion Soap12WSAddressing10 { get; } + public static MessageVersion CreateVersion(EnvelopeVersion envelopeVersion); + public static MessageVersion CreateVersion(EnvelopeVersion envelopeVersion, AddressingVersion addressingVersion); + public override bool Equals(object obj); + public override int GetHashCode(); + public override string ToString(); + } + public sealed class NamedPipeSettings { + public ApplicationContainerSettings ApplicationContainerSettings { get; private set; } + } + public static class NetHttpBindingDefaults { + public const WebSocketTransportUsage TransportUsage = 0; + public const NetHttpMessageEncoding MessageEncoding = 0; + } + public static class NetTcpDefaults { + public const MessageCredentialType MessageSecurityClientCredentialType = 1; + } + public static class OneWayDefaults { + public const bool PacketRoutable = false; + public const int MaxAcceptedChannels = 10; + public const int MaxOutboundChannelsPerEndpoint = 10; + public const string IdleTimeoutString = "00:02:00"; + public const string LeaseTimeoutString = "00:10:00"; + public static TimeSpan IdleTimeout { get; } + public static TimeSpan LeaseTimeout { get; } + } + public abstract class OutputChannel : ChannelBase, IChannel, ICommunicationObject, IOutputChannel { + protected OutputChannel(ChannelManagerBase manager); + public abstract EndpointAddress RemoteAddress { get; } + public abstract Uri Via { get; } + protected virtual void AddHeadersTo(Message message); + public IAsyncResult BeginSend(Message message, AsyncCallback callback, object state); + public IAsyncResult BeginSend(Message message, TimeSpan timeout, AsyncCallback callback, object state); + public void EndSend(IAsyncResult result); + public override T GetProperty(); + protected abstract void OnSend(Message message, TimeSpan timeout); + protected abstract Task OnSendAsync(Message message, TimeSpan timeout); + public void Send(Message message); + public void Send(Message message, TimeSpan timeout); + } + public abstract class RequestChannel : ChannelBase, IAsyncCommunicationObject, IAsyncRequestChannel, IChannel, ICommunicationObject, IRequestChannel { + protected RequestChannel(ChannelManagerBase channelFactory, EndpointAddress to, Uri via, bool manualAddressing); + protected bool ManualAddressing { get; } + public EndpointAddress RemoteAddress { get; } + public Uri Via { get; } + protected void AbortPendingRequests(); + protected virtual void AddHeadersTo(Message message); + public IAsyncResult BeginRequest(Message message, AsyncCallback callback, object state); + public IAsyncResult BeginRequest(Message message, TimeSpan timeout, AsyncCallback callback, object state); + protected IAsyncResult BeginWaitForPendingRequests(TimeSpan timeout, AsyncCallback callback, object state); + protected abstract IAsyncRequest CreateAsyncRequest(Message message); + public Message EndRequest(IAsyncResult result); + protected void EndWaitForPendingRequests(IAsyncResult result); + protected void FaultPendingRequests(); + public override T GetProperty(); + protected override void OnAbort(); + public Message Request(Message message); + public Message Request(Message message, TimeSpan timeout); + public Task RequestAsync(Message message); + public Task RequestAsync(Message message, TimeSpan timeout); + protected void WaitForPendingRequests(TimeSpan timeout); + protected internal Task WaitForPendingRequestsAsync(TimeSpan timeout); + } + public abstract class RequestContext : IDisposable { + protected RequestContext(); + public abstract Message RequestMessage { get; } + public abstract void Abort(); + public abstract IAsyncResult BeginReply(Message message, AsyncCallback callback, object state); + public abstract IAsyncResult BeginReply(Message message, TimeSpan timeout, AsyncCallback callback, object state); + public abstract void Close(); + public abstract void Close(TimeSpan timeout); + protected virtual void Dispose(bool disposing); + public abstract void EndReply(IAsyncResult result); + public abstract void Reply(Message message); + public abstract void Reply(Message message, TimeSpan timeout); + void System.IDisposable.Dispose(); + } + public abstract class SecurityBindingElement : BindingElement { + public SupportingTokenParameters EndpointSupportingTokenParameters { get; } + public bool IncludeTimestamp { get; set; } + public LocalClientSecuritySettings LocalClientSettings { get; } + public MessageSecurityVersion MessageSecurityVersion { get; set; } + public SecurityHeaderLayout SecurityHeaderLayout { get; set; } + public override IChannelFactory BuildChannelFactory(BindingContext context); + protected abstract IChannelFactory BuildChannelFactoryCore(BindingContext context); + public override bool CanBuildChannelFactory(BindingContext context); + public static TransportSecurityBindingElement CreateCertificateOverTransportBindingElement(MessageSecurityVersion version); + public static SecurityBindingElement CreateMutualCertificateBindingElement(); + public static SecurityBindingElement CreateMutualCertificateBindingElement(MessageSecurityVersion version); + public static SecurityBindingElement CreateMutualCertificateBindingElement(MessageSecurityVersion version, bool allowSerializedSigningTokenOnReply); + public static SecurityBindingElement CreateSecureConversationBindingElement(SecurityBindingElement bootstrapSecurity); + public static TransportSecurityBindingElement CreateUserNameOverTransportBindingElement(); + public override T GetProperty(BindingContext context); + protected static void SetIssuerBindingContextIfRequired(SecurityTokenParameters parameters, BindingContext issuerBindingContext); + public virtual void SetKeyDerivation(bool requireDerivedKeys); + public override string ToString(); + } + public class SecurityCapabilities : ISecurityCapabilities { + public SecurityCapabilities(bool supportsClientAuth, bool supportsServerAuth, bool supportsClientWindowsIdentity, ProtectionLevel requestProtectionLevel, ProtectionLevel responseProtectionLevel); + public static SecurityCapabilities None { get; } + public ProtectionLevel SupportedRequestProtectionLevel { get; } + public ProtectionLevel SupportedResponseProtectionLevel { get; } + public bool SupportsClientAuthentication { get; } + public bool SupportsClientWindowsIdentity { get; } + public bool SupportsServerAuthentication { get; } + public static bool IsEqual(ISecurityCapabilities capabilities1, ISecurityCapabilities capabilities2); + } + public enum SecurityHeaderLayout { + Lax = 1, + LaxTimestampFirst = 2, + LaxTimestampLast = 3, + Strict = 0, + } + public class ServiceChannelProxy : DispatchProxy, IChannel, IClientChannel, ICommunicationObject, IContextChannel, IDisposable, IDuplexContextChannel, IExtensibleObject, IOutputChannel, IRequestChannel, IServiceChannel { + public ServiceChannelProxy(); + public bool AutomaticInputSessionShutdown { get; set; } + public InstanceContext CallbackInstance { get; set; } + EndpointAddress System.ServiceModel.Channels.IOutputChannel.RemoteAddress { get; } + Uri System.ServiceModel.Channels.IOutputChannel.Via { get; } + EndpointAddress System.ServiceModel.Channels.IRequestChannel.RemoteAddress { get; } + Uri System.ServiceModel.Channels.IRequestChannel.Via { get; } + bool System.ServiceModel.IClientChannel.AllowInitializationUI { get; set; } + bool System.ServiceModel.IClientChannel.DidInteractiveInitialization { get; } + Uri System.ServiceModel.IClientChannel.Via { get; } + CommunicationState System.ServiceModel.ICommunicationObject.State { get; } + bool System.ServiceModel.IContextChannel.AllowOutputBatching { get; set; } + IInputSession System.ServiceModel.IContextChannel.InputSession { get; } + EndpointAddress System.ServiceModel.IContextChannel.LocalAddress { get; } + TimeSpan System.ServiceModel.IContextChannel.OperationTimeout { get; set; } + IOutputSession System.ServiceModel.IContextChannel.OutputSession { get; } + EndpointAddress System.ServiceModel.IContextChannel.RemoteAddress { get; } + string System.ServiceModel.IContextChannel.SessionId { get; } + IExtensionCollection System.ServiceModel.IExtensibleObject.Extensions { get; } + Uri System.ServiceModel.IServiceChannel.ListenUri { get; } + event EventHandler System.ServiceModel.IClientChannel.UnknownMessageReceived; + event EventHandler System.ServiceModel.ICommunicationObject.Closed; + event EventHandler System.ServiceModel.ICommunicationObject.Closing; + event EventHandler System.ServiceModel.ICommunicationObject.Faulted; + event EventHandler System.ServiceModel.ICommunicationObject.Opened; + event EventHandler System.ServiceModel.ICommunicationObject.Opening; + public IAsyncResult BeginCloseOutputSession(TimeSpan timeout, AsyncCallback callback, object state); + public void CloseOutputSession(TimeSpan timeout); + public void EndCloseOutputSession(IAsyncResult result); + protected override object Invoke(MethodInfo targetMethod, object[] args); + void System.IDisposable.Dispose(); + T System.ServiceModel.Channels.IChannel.GetProperty(); + IAsyncResult System.ServiceModel.Channels.IOutputChannel.BeginSend(Message message, AsyncCallback callback, object state); + IAsyncResult System.ServiceModel.Channels.IOutputChannel.BeginSend(Message message, TimeSpan timeout, AsyncCallback callback, object state); + void System.ServiceModel.Channels.IOutputChannel.EndSend(IAsyncResult result); + void System.ServiceModel.Channels.IOutputChannel.Send(Message message); + void System.ServiceModel.Channels.IOutputChannel.Send(Message message, TimeSpan timeout); + IAsyncResult System.ServiceModel.Channels.IRequestChannel.BeginRequest(Message message, AsyncCallback callback, object state); + IAsyncResult System.ServiceModel.Channels.IRequestChannel.BeginRequest(Message message, TimeSpan timeout, AsyncCallback callback, object state); + Message System.ServiceModel.Channels.IRequestChannel.EndRequest(IAsyncResult result); + Message System.ServiceModel.Channels.IRequestChannel.Request(Message message); + Message System.ServiceModel.Channels.IRequestChannel.Request(Message message, TimeSpan timeout); + IAsyncResult System.ServiceModel.IClientChannel.BeginDisplayInitializationUI(AsyncCallback callback, object state); + void System.ServiceModel.IClientChannel.DisplayInitializationUI(); + void System.ServiceModel.IClientChannel.EndDisplayInitializationUI(IAsyncResult result); + void System.ServiceModel.ICommunicationObject.Abort(); + IAsyncResult System.ServiceModel.ICommunicationObject.BeginClose(AsyncCallback callback, object state); + IAsyncResult System.ServiceModel.ICommunicationObject.BeginClose(TimeSpan timeout, AsyncCallback callback, object state); + IAsyncResult System.ServiceModel.ICommunicationObject.BeginOpen(AsyncCallback callback, object state); + IAsyncResult System.ServiceModel.ICommunicationObject.BeginOpen(TimeSpan timeout, AsyncCallback callback, object state); + void System.ServiceModel.ICommunicationObject.Close(); + void System.ServiceModel.ICommunicationObject.Close(TimeSpan timeout); + void System.ServiceModel.ICommunicationObject.EndClose(IAsyncResult result); + void System.ServiceModel.ICommunicationObject.EndOpen(IAsyncResult result); + void System.ServiceModel.ICommunicationObject.Open(); + void System.ServiceModel.ICommunicationObject.Open(TimeSpan timeout); + public override string ToString(); + } + public class ServiceModelHttpMessageHandler : DelegatingHandler { + public ServiceModelHttpMessageHandler(); + public DecompressionMethods AutomaticDecompression { get; set; } + public bool CheckCertificateRevocationList { get; set; } + public X509CertificateCollection ClientCertificates { get; } + public CookieContainer CookieContainer { get; set; } + public ICredentials Credentials { get; set; } + public bool PreAuthenticate { get; set; } + public Func ServerCertificateValidationCallback { get; set; } + public bool SupportsCertificateValidationCallback { get; } + public bool SupportsClientCertificates { get; } + public bool SupportsProxy { get; } + public bool UseCookies { get; set; } + public bool UseDefaultCredentials { get; set; } + public bool UseProxy { get; set; } + protected override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken); + } + public class SslStreamSecurityBindingElement : BindingElement { + public SslStreamSecurityBindingElement(); + protected SslStreamSecurityBindingElement(SslStreamSecurityBindingElement elementToBeCloned); + public IdentityVerifier IdentityVerifier { get; set; } + public SslProtocols SslProtocols { get; set; } + public override IChannelFactory BuildChannelFactory(BindingContext context); + public override StreamUpgradeProvider BuildClientStreamUpgradeProvider(BindingContext context); + public override bool CanBuildChannelFactory(BindingContext context); + public override BindingElement Clone(); + public override T GetProperty(BindingContext context); + } + public abstract class StreamSecurityUpgradeInitiator : StreamUpgradeInitiator { + protected StreamSecurityUpgradeInitiator(); + public abstract SecurityMessageProperty GetRemoteSecurity(); + } + public abstract class StreamSecurityUpgradeProvider : StreamUpgradeProvider { + protected StreamSecurityUpgradeProvider(); + protected StreamSecurityUpgradeProvider(IDefaultCommunicationTimeouts timeouts); + public abstract EndpointIdentity Identity { get; } + } + public abstract class StreamUpgradeBindingElement : BindingElement { + protected StreamUpgradeBindingElement(); + protected StreamUpgradeBindingElement(StreamUpgradeBindingElement elementToBeCloned); + public abstract StreamUpgradeProvider BuildClientStreamUpgradeProvider(BindingContext context); + } + public abstract class StreamUpgradeInitiator { + protected StreamUpgradeInitiator(); + public abstract string GetNextUpgrade(); + public abstract Stream InitiateUpgrade(Stream stream); + } + public abstract class StreamUpgradeProvider : CommunicationObject, IAsyncCommunicationObject, ICommunicationObject { + protected StreamUpgradeProvider(); + protected StreamUpgradeProvider(IDefaultCommunicationTimeouts timeouts); + protected override TimeSpan DefaultCloseTimeout { get; } + protected override TimeSpan DefaultOpenTimeout { get; } + public abstract StreamUpgradeInitiator CreateUpgradeInitiator(EndpointAddress remoteAddress, Uri via); + public virtual T GetProperty() where T : class; + } + public enum SupportedAddressingMode { + Anonymous = 0, + Mixed = 2, + NonAnonymous = 1, + } + public sealed class TcpConnectionPoolSettings { + public string GroupName { get; set; } + public TimeSpan IdleTimeout { get; set; } + public TimeSpan LeaseTimeout { get; set; } + public int MaxOutboundConnectionsPerEndpoint { get; set; } + } + public class TcpTransportBindingElement : ConnectionOrientedTransportBindingElement { + public TcpTransportBindingElement(); + protected TcpTransportBindingElement(TcpTransportBindingElement elementToBeCloned); + public TcpConnectionPoolSettings ConnectionPoolSettings { get; } + public override string Scheme { get; } + public override IChannelFactory BuildChannelFactory(BindingContext context); + public override BindingElement Clone(); + public override T GetProperty(BindingContext context); + } + public static class TcpTransportDefaults { + public const bool PortSharingEnabled = false; + public const bool TeredoEnabled = false; + public const int ListenBacklogConst = 0; + public const string ConnectionLeaseTimeoutString = "00:05:00"; + public static TimeSpan ConnectionLeaseTimeout { get; } + public static int GetListenBacklog(); + } + public static class TextEncoderDefaults { + public static readonly TextEncoderDefaults.CharSetEncoding[] CharSetEncodings; + public const string EncodingString = "utf-8"; + public const string MessageVersionString = "Soap12WSAddressing10"; + public static readonly Encoding Encoding; + public static readonly Encoding[] SupportedEncodings; + public static string EncodingToCharSet(Encoding encoding); + public static bool TryGetEncoding(string charSet, out Encoding encoding); + public static void ValidateEncoding(Encoding encoding); + public class CharSetEncoding { + public string CharSet; + public Encoding Encoding; + public CharSetEncoding(string charSet, Encoding enc); + } + } + public sealed class TextMessageEncodingBindingElement : MessageEncodingBindingElement { + public TextMessageEncodingBindingElement(); + public TextMessageEncodingBindingElement(MessageVersion messageVersion, Encoding writeEncoding); + public int MaxReadPoolSize { get; set; } + public int MaxWritePoolSize { get; set; } + public override MessageVersion MessageVersion { get; set; } + public XmlDictionaryReaderQuotas ReaderQuotas { get; set; } + public Encoding WriteEncoding { get; set; } + public override IChannelFactory BuildChannelFactory(BindingContext context); + public override BindingElement Clone(); + public override MessageEncoderFactory CreateMessageEncoderFactory(); + public override T GetProperty(BindingContext context); + } + public abstract class TransportBindingElement : BindingElement { + protected TransportBindingElement(); + protected TransportBindingElement(TransportBindingElement elementToBeCloned); + public virtual bool ManualAddressing { get; set; } + public virtual long MaxBufferPoolSize { get; set; } + public virtual long MaxReceivedMessageSize { get; set; } + public abstract string Scheme { get; } + public override T GetProperty(BindingContext context); + } + public abstract class TransportChannelFactory : ChannelFactoryBase, IDefaultCommunicationTimeouts, ITransportFactorySettings { + protected TransportChannelFactory(TransportBindingElement bindingElement, BindingContext context); + protected TransportChannelFactory(TransportBindingElement bindingElement, BindingContext context, MessageEncoderFactory defaultMessageEncoderFactory); + public BufferManager BufferManager { get; } + public bool ManualAddressing { get; } + public long MaxBufferPoolSize { get; } + public long MaxReceivedMessageSize { get; } + public MessageEncoderFactory MessageEncoderFactory { get; } + public MessageVersion MessageVersion { get; } + public abstract string Scheme { get; } + BufferManager System.ServiceModel.Channels.ITransportFactorySettings.BufferManager { get; } + bool System.ServiceModel.Channels.ITransportFactorySettings.ManualAddressing { get; } + long System.ServiceModel.Channels.ITransportFactorySettings.MaxReceivedMessageSize { get; } + MessageEncoderFactory System.ServiceModel.Channels.ITransportFactorySettings.MessageEncoderFactory { get; } + public virtual int GetMaxBufferSize(); + public override T GetProperty(); + protected override void OnAbort(); + protected override IAsyncResult OnBeginClose(TimeSpan timeout, AsyncCallback callback, object state); + protected override void OnClose(TimeSpan timeout); + protected internal override Task OnCloseAsync(TimeSpan timeout); + protected override void OnOpening(); + public void ValidateScheme(Uri via); + } + public static class TransportDefaults { + public const bool ExtractGroupsForWindowsAccounts = true; + public const bool ManualAddressing = false; + public const bool RequireClientCertificate = false; + public const int MaxBufferSize = 65536; + public const int MaxDrainSize = 65536; + public const int MaxFaultSize = 65536; + public const int MaxRMFaultSize = 65536; + public const int MaxSecurityFaultSize = 16384; + public const long MaxBufferPoolSize = (long)524288; + public const long MaxReceivedMessageSize = (long)65536; + public const SslProtocols SslProtocols = 4032; + public const TokenImpersonationLevel ImpersonationLevel = 2; + public const HostNameComparisonMode HostNameComparisonMode = 1; + public static MessageEncoderFactory GetDefaultMessageEncoderFactory(); + } + public abstract class TransportDuplexSessionChannel : TransportOutputChannel, IChannel, ICommunicationObject, IDuplexChannel, IDuplexSessionChannel, IInputChannel, IOutputChannel, ISessionChannel { + protected TransportDuplexSessionChannel(ChannelManagerBase manager, ITransportFactorySettings settings, EndpointAddress localAddress, Uri localVia, EndpointAddress remoteAddresss, Uri via); + protected BufferManager BufferManager { get; } + protected abstract bool IsStreamedOutput { get; } + public EndpointAddress LocalAddress { get; } + protected MessageEncoder MessageEncoder { get; set; } + public SecurityMessageProperty RemoteSecurity { get; protected set; } + public IDuplexSession Session { get; protected set; } + protected void ApplyChannelBinding(Message message); + protected abstract AsyncCompletionResult BeginCloseOutput(TimeSpan timeout, Action callback, object state); + public IAsyncResult BeginReceive(AsyncCallback callback, object state); + public IAsyncResult BeginReceive(TimeSpan timeout, AsyncCallback callback, object state); + public IAsyncResult BeginTryReceive(TimeSpan timeout, AsyncCallback callback, object state); + public IAsyncResult BeginWaitForMessage(TimeSpan timeout, AsyncCallback callback, object state); + protected void CloseOutputSession(TimeSpan timeout); + protected Task CloseOutputSessionAsync(TimeSpan timeout); + protected abstract void CloseOutputSessionCore(TimeSpan timeout); + protected abstract Task CloseOutputSessionCoreAsync(TimeSpan timeout); + protected abstract void CompleteClose(TimeSpan timeout); + protected abstract ArraySegment EncodeMessage(Message message); + public Message EndReceive(IAsyncResult result); + public bool EndTryReceive(IAsyncResult result, out Message message); + public bool EndWaitForMessage(IAsyncResult result); + protected virtual void FinishWritingMessage(); + protected override void OnAbort(); + protected override IAsyncResult OnBeginClose(TimeSpan timeout, AsyncCallback callback, object state); + protected override void OnClose(TimeSpan timeout); + protected internal override Task OnCloseAsync(TimeSpan timeout); + protected override void OnClosed(); + protected override void OnEndClose(IAsyncResult result); + protected override void OnFaulted(); + protected virtual void OnReceiveMessage(Message message); + protected override void OnSend(Message message, TimeSpan timeout); + protected override Task OnSendAsync(Message message, TimeSpan timeout); + protected abstract void OnSendCore(Message message, TimeSpan timeout); + protected virtual void PrepareMessage(Message message); + public Message Receive(); + public Message Receive(TimeSpan timeout); + public Task ReceiveAsync(TimeSpan timeout); + protected abstract void ReturnConnectionIfNecessary(bool abort, TimeSpan timeout); + protected void SetMessageSource(IMessageSource messageSource); + protected abstract AsyncCompletionResult StartWritingBufferedMessage(Message message, ArraySegment messageData, bool allowOutputBatching, TimeSpan timeout, Action callback, object state); + protected abstract AsyncCompletionResult StartWritingStreamedMessage(Message message, TimeSpan timeout, Action callback, object state); + public bool TryReceive(TimeSpan timeout, out Message message); + public bool WaitForMessage(TimeSpan timeout); + public Task WaitForMessageAsync(TimeSpan timeout); + public class ConnectionDuplexSession : IDuplexSession, IInputSession, IOutputSession, ISession { + public ConnectionDuplexSession(TransportDuplexSessionChannel channel); + public TransportDuplexSessionChannel Channel { get; } + public string Id { get; } + public IAsyncResult BeginCloseOutputSession(AsyncCallback callback, object state); + public IAsyncResult BeginCloseOutputSession(TimeSpan timeout, AsyncCallback callback, object state); + public void CloseOutputSession(); + public void CloseOutputSession(TimeSpan timeout); + public void EndCloseOutputSession(IAsyncResult result); + } + } + public abstract class TransportOutputChannel : OutputChannel { + protected TransportOutputChannel(ChannelManagerBase channelManager, EndpointAddress to, Uri via, bool manualAddressing, MessageVersion messageVersion); + public EventTraceActivity EventTraceActivity { get; } + protected bool ManualAddressing { get; } + public MessageVersion MessageVersion { get; } + public override EndpointAddress RemoteAddress { get; } + public override Uri Via { get; } + protected override void AddHeadersTo(Message message); + } + public sealed class TransportSecurityBindingElement : SecurityBindingElement { + public TransportSecurityBindingElement(); + protected override IChannelFactory BuildChannelFactoryCore(BindingContext context); + public override BindingElement Clone(); + public override T GetProperty(BindingContext context); + } + public sealed class UnderstoodHeaders : IEnumerable, IEnumerable { + public void Add(MessageHeaderInfo headerInfo); + public bool Contains(MessageHeaderInfo headerInfo); + public IEnumerator GetEnumerator(); + public void Remove(MessageHeaderInfo headerInfo); + IEnumerator System.Collections.IEnumerable.GetEnumerator(); + } + public static class WebSocketDefaults { + public const bool CreateNotificationOnConnection = false; + public const int BufferSize = 16384; + public const int MinReceiveBufferSize = 256; + public const int MinSendBufferSize = 16; + public const WebSocketTransportUsage TransportUsage = 2; + public const string DefaultKeepAliveIntervalString = "00:00:00"; + public const string SubProtocol = null; + public const string WebSocketConnectionHeaderValue = "Upgrade"; + public const string WebSocketUpgradeHeaderValue = "websocket"; + public static readonly TimeSpan DefaultKeepAliveInterval; + } + public sealed class WebSocketTransportSettings : IEquatable { + public const string BinaryEncoderTransferModeHeader = "microsoft-binary-transfer-mode"; + public const string BinaryMessageReceivedAction = "http://schemas.microsoft.com/2011/02/websockets/onbinarymessage"; + public const string ConnectionOpenedAction = "http://schemas.microsoft.com/2011/02/session/onopen"; + public const string SoapContentTypeHeader = "soap-content-type"; + public const string TextMessageReceivedAction = "http://schemas.microsoft.com/2011/02/websockets/ontextmessage"; + public WebSocketTransportSettings(); + public bool DisablePayloadMasking { get; set; } + public TimeSpan KeepAliveInterval { get; set; } + public string SubProtocol { get; set; } + public WebSocketTransportUsage TransportUsage { get; set; } + public override bool Equals(object obj); + public bool Equals(WebSocketTransportSettings other); + public override int GetHashCode(); + } + public enum WebSocketTransportUsage { + Always = 1, + Never = 2, + WhenDuplex = 0, + } + public class WindowsStreamSecurityBindingElement : BindingElement { + public WindowsStreamSecurityBindingElement(); + protected WindowsStreamSecurityBindingElement(WindowsStreamSecurityBindingElement elementToBeCloned); + public ProtectionLevel ProtectionLevel { get; set; } + public override IChannelFactory BuildChannelFactory(BindingContext context); + public override StreamUpgradeProvider BuildClientStreamUpgradeProvider(BindingContext context); + public override bool CanBuildChannelFactory(BindingContext context); + public override BindingElement Clone(); + public override T GetProperty(BindingContext context); + } + public class XmlObjectSerializerFault : MessageFault { + public XmlObjectSerializerFault(FaultCode code, FaultReason reason, object detail, XmlObjectSerializer serializer, string actor, string node); + public override string Actor { get; } + public override FaultCode Code { get; } + public override bool HasDetail { get; } + public override string Node { get; } + public override FaultReason Reason { get; } + protected override void OnWriteDetailContents(XmlDictionaryWriter writer); + } +} ```