/// <summary> /// Creates a BindingElement instance /// </summary> /// <param name="transport">The trasport of this binding element.</param> /// <param name="extraBindings">The other elements for ths binding.</param> protected Binding(TransportBindingElement transport, params BindingElement[] extraBindings) { this.Transport = transport; BindingElement prev = null; if (extraBindings != null) { int len = extraBindings.Length; if (len > 0) { prev = null; for (int i = len - 1; i >= 0; i--) { BindingElement next = extraBindings[i]; if (prev == null) { this.Elements = next; } else { prev.SetNext(next); } prev = next; if (next is MessageEncodingBindingElement) { this.Encoding = (MessageEncodingBindingElement)next; } } } } if (prev == null) { this.Encoding = new TextMessageEncodingBindingElement(); this.Elements = this.Encoding; this.Elements.SetNext(this.Transport); } else if (this.Encoding == null) { this.Encoding = new TextMessageEncodingBindingElement(); prev.SetNext(this.Encoding); this.Encoding.SetNext(this.Transport); } else { prev.SetNext(this.Transport); } }
/// <summary> /// Creates a BindingElement instance /// </summary> /// <param name="transport">The trasport of this binding element.</param> /// <param name="extraBindings">The other elements for ths binding.</param> protected Binding( TransportBindingElement transport, params BindingElement[] extraBindings ) { this.Transport = transport; BindingElement prev = null; if(extraBindings != null) { int len = extraBindings.Length; if(len > 0) { prev = null; for(int i=len-1; i>=0; i--) { BindingElement next = extraBindings[i]; if (prev == null) { this.Elements = next; } else { prev.SetNext(next); } prev = next; if(next is MessageEncodingBindingElement) { this.Encoding = (MessageEncodingBindingElement)next; } } } } if (prev == null) { this.Encoding = new TextMessageEncodingBindingElement(); this.Elements = this.Encoding; this.Elements.SetNext(this.Transport); } else if(this.Encoding == null) { this.Encoding = new TextMessageEncodingBindingElement(); prev.SetNext(this.Encoding); this.Encoding.SetNext(this.Transport); } else { prev.SetNext(this.Transport); } }
/// <summary> /// Creates an instance of a CustomBinding class /// </summary> /// <param name="transport">The transport associated with a custom binding class.</param> /// <param name="extraBindings">The additional binding elements associated with the customer binding.</param> public CustomBinding( TransportBindingElement transport, params BindingElement[] extraBindings ) : base( transport, extraBindings ) { }
/// <summary> /// Creates an instance of a CustomBinding class /// </summary> /// <param name="transport">The transport associated with a custom binding class.</param> /// <param name="extraBindings">The additional binding elements associated with the customer binding.</param> public CustomBinding(TransportBindingElement transport, params BindingElement[] extraBindings) : base(transport, extraBindings) { }