예제 #1
0
        public override BindingElementCollection CreateBindingElements()
        {
            BindingElement         tx  = new TransactionFlowBindingElement(TransactionProtocol.WSAtomicTransactionOctober2004);
            SecurityBindingElement sec = CreateMessageSecurity();
            var msg = new BinaryMessageEncodingBindingElement();

            if (ReaderQuotas != null)
            {
                ReaderQuotas.CopyTo(msg.ReaderQuotas);
            }
            var                   trsec = CreateTransportSecurity();
            BindingElement        tr    = GetTransport();
            List <BindingElement> list  = new List <BindingElement> ();

            if (tx != null)
            {
                list.Add(tx);
            }
            if (sec != null)
            {
                list.Add(sec);
            }
            list.Add(msg);
            if (trsec != null)
            {
                list.Add(trsec);
            }
            list.Add(tr);
            return(new BindingElementCollection(list.ToArray()));
        }
예제 #2
0
        public override BindingElementCollection CreateBindingElements()
        {
            var mbe = new BinaryMessageEncodingBindingElement();

            if (ReaderQuotas != null)
            {
                ReaderQuotas.CopyTo(mbe.ReaderQuotas);
            }

            return(new BindingElementCollection(new BindingElement [] { mbe, transport.Clone() }));
        }
예제 #3
0
        CreateBindingElements()
        {
            var mbe = new BinaryMessageEncodingBindingElement();

            if (ReaderQuotas != null)
            {
                ReaderQuotas.CopyTo(mbe.ReaderQuotas);
            }

            var prbe = Resolver.CreateBinding();

            return(new BindingElementCollection(new BindingElement [] { mbe, prbe, transport.Clone() }));
        }
예제 #4
0
 MessageEncodingBindingElement BuildMessageEncodingBindingElement()
 {
     if (MessageEncoding == WSMessageEncoding.Text)
     {
         TextMessageEncodingBindingElement tm = new TextMessageEncodingBindingElement(
             MessageVersion.CreateVersion(EnvelopeVersion, AddressingVersion.None), TextEncoding);
         ReaderQuotas.CopyTo(tm.ReaderQuotas);
         return(tm);
     }
     else
     {
         return(new MtomMessageEncodingBindingElement(
                    MessageVersion.CreateVersion(EnvelopeVersion, AddressingVersion.None), TextEncoding));
     }
 }
예제 #5
0
        MessageEncodingBindingElement BuildMessageEncodingBindingElement()
        {
            if (MessageEncoding == WSMessageEncoding.Text)
            {
                TextMessageEncodingBindingElement tm = new TextMessageEncodingBindingElement(MessageVersion.CreateVersion(EnvelopeVersion, AddressingVersion.None), TextEncoding);
                ReaderQuotas.CopyTo(tm.ReaderQuotas);
                return(tm);
            }
            else
            {
                                #if NET_2_1 || XAMMAC_4_5
                throw new NotImplementedException();
#else
                return(new MtomMessageEncodingBindingElement(MessageVersion.CreateVersion(EnvelopeVersion, AddressingVersion.None), TextEncoding));
                                #endif
            }
        }
예제 #6
0
        MessageEncodingBindingElement BuildMessageEncodingBindingElement()
        {
            if (MessageEncoding == WSMessageEncoding.Text)
            {
                TextMessageEncodingBindingElement tm = new TextMessageEncodingBindingElement(
                    MessageVersion.CreateVersion(EnvelopeVersion, AddressingVersion.None), TextEncoding);
#if !NET_2_1
                ReaderQuotas.CopyTo(tm.ReaderQuotas);
#endif
                return(tm);
            }
            else
#if NET_2_1
            { throw new SystemException("INTERNAL ERROR: should not happen"); }
#else
            { return(new MtomMessageEncodingBindingElement(
                         MessageVersion.CreateVersion(EnvelopeVersion, AddressingVersion.None), TextEncoding)); }
#endif
        }
예제 #7
0
        public override BindingElementCollection CreateBindingElements()
        {
            BinaryMessageEncodingBindingElement encoding = new BinaryMessageEncodingBindingElement();

            ZMQTransportBindingElement transport = new ZMQTransportBindingElement(Scheme, SocketMode);

            if (ReaderQuotas != null)
            {
                ReaderQuotas.CopyTo(encoding.ReaderQuotas);
            }

            BindingElementCollection collection = new BindingElementCollection
            {
                encoding,
                transport
            };

            return(collection);
        }
예제 #8
0
        public override BindingElementCollection CreateBindingElements()
        {
            _transport.BrokerProtocol           = BrokerProtocol;
            _transport.TransactedReceiveEnabled = ExactlyOnce;
            _transport.TTL                = TTL;
            _transport.AutoDelete         = AutoDelete;
            _transport.PersistentDelivery = PersistentDelivery;
            _transport.AutoBindExchange   = AutoBindExchange;
            _transport.ReplyToQueue       = ReplyToQueue;
            _transport.ReplyToExchange    = ReplyToExchange;
            _transport.OneWayOnly         = OneWayOnly;
            _transport.ApplicationId      = ApplicationId;
            _transport.MessageFormat      = MessageFormat;
            _transport.HeaderNamespace    = HeaderNamespace;
            _transport.Immediate          = Immediate;
            _transport.Mandatory          = Mandatory;

            if (ReaderQuotas != null)
            {
                ReaderQuotas.CopyTo(_textEncoding.ReaderQuotas);
                ReaderQuotas.CopyTo(_mtomEncoding.ReaderQuotas);
                ReaderQuotas.CopyTo(_binaryEncoding.ReaderQuotas);
            }

            BindingElementCollection elements = new BindingElementCollection();

            if (!OneWayOnly)
            {
                elements.Add(_duplex);
            }

            elements.Add(_binaryEncoding);
            elements.Add(_mtomEncoding);
            elements.Add(_textEncoding);
            elements.Add(_transport);

            return(elements);
        }