示例#1
0
        protected override BindingElement CreateBindingElement()
        {
            CustomHttpTransportBindingElement bindingElement = new CustomHttpTransportBindingElement();

            this.ApplyConfiguration(bindingElement);
            return(bindingElement);
        }
示例#2
0
 void Initialize()
 {
     transport       = new CustomHttpTransportBindingElement();
     session         = new ReliableSessionBindingElement();
     compositeDuplex = new CompositeDuplexBindingElement();
     encoding        = new TextMessageEncodingBindingElement();
 }
示例#3
0
        protected override void InitializeFrom(BindingElement bindingElement)
        {
            base.InitializeFrom(bindingElement);

            CustomHttpTransportBindingElement customHttpBindingElement = (CustomHttpTransportBindingElement)bindingElement;

            this.MaxBufferPoolSize      = customHttpBindingElement.MaxBufferPoolSize;
            this.MaxReceivedMessageSize = (int)customHttpBindingElement.MaxReceivedMessageSize;
        }
示例#4
0
        public override void ApplyConfiguration(BindingElement bindingElement)
        {
            base.ApplyConfiguration(bindingElement);

            CustomHttpTransportBindingElement customHttpBindingElement = (CustomHttpTransportBindingElement)bindingElement;

            customHttpBindingElement.MaxBufferPoolSize      = this.MaxBufferPoolSize;
            customHttpBindingElement.MaxReceivedMessageSize = this.MaxReceivedMessageSize;
        }
示例#5
0
        internal CustomHttpChannelListener(
            CustomHttpTransportBindingElement bindingElement,
            BindingContext context)
            : base(context.Binding)
        {
            this.maxMessageSize = (int)bindingElement.MaxReceivedMessageSize;
            this.bufferManager  = BufferManager.CreateBufferManager(bindingElement.MaxBufferPoolSize, this.maxMessageSize);
            MessageEncodingBindingElement messageEncoderBindingElement = context.BindingParameters.Remove <MessageEncodingBindingElement>();

            if (messageEncoderBindingElement != null)
            {
                this.messageEncoderFactory = messageEncoderBindingElement.CreateMessageEncoderFactory();
            }
            else
            {
                this.messageEncoderFactory = CustomHttpConstants.DefaultMessageEncoderFactory;
            }
            this.channelQueue       = new InputQueue <IInputChannel>();
            this.currentChannelLock = new object();
            this.listenSockets      = new List <Socket>(2);

            Uri baseAddress = context.ListenUriBaseAddress;

            if (baseAddress == null)
            {
                if (context.ListenUriMode == ListenUriMode.Unique)
                {
                    UriBuilder uriBuilder = new UriBuilder(this.Scheme, Dns.GetHostEntry(String.Empty).HostName);
                    uriBuilder.Path = Guid.NewGuid().ToString();
                    baseAddress     = uriBuilder.Uri;
                }
                else
                {
                    throw new InvalidOperationException(
                              "Null is only a supported value for ListenUriBaseAddress when using ListenUriMode.Unique.");
                }
            }

            this.InitializeUri(baseAddress, context.ListenUriRelativeAddress, context.ListenUriMode);
        }
        internal CustomHttpChannelFactory(CustomHttpTransportBindingElement bindingElement, BindingContext context)
            : base(context.Binding)
        {
            this.bufferManager = BufferManager.CreateBufferManager(bindingElement.MaxBufferPoolSize, int.MaxValue);

            Collection <MessageEncodingBindingElement> messageEncoderBindingElements
                = context.BindingParameters.FindAll <MessageEncodingBindingElement>();

            if (messageEncoderBindingElements.Count > 1)
            {
                throw new InvalidOperationException("More than one MessageEncodingBindingElement was found in the BindingParameters of the BindingContext");
            }
            else if (messageEncoderBindingElements.Count == 1)
            {
                this.messageEncoderFactory = messageEncoderBindingElements[0].CreateMessageEncoderFactory();
            }
            else
            {
                this.messageEncoderFactory = CustomHttpConstants.DefaultMessageEncoderFactory;
            }
            _bindingElement = bindingElement;
        }
 protected CustomHttpTransportBindingElement(CustomHttpTransportBindingElement other)
     : base(other)
 {
 }