Hello Thiago,

In what kind of situation does this bring an issue? Is it like, a 
binding element after a
TransportBindingElement should not be ignored under certain usage?

For reference, there is a test named 
BuildChannelFactoryIgnoresRemaining() in HttpTransportBindingElementTest 
in our nunit test that confirms that InvalidBindingElement is ignored 
after a transport binding element. (If it is not ignored and called 
BuildChannelFactory<T>(), then it throws NotSupportedException.)

         [Test]
         public void BuildChannelFactoryIgnoresRemaining ()
         {
             BindingContext ctx = new BindingContext (
                 new CustomBinding (
                     new HttpTransportBindingElement (),
                     new InvalidBindingElement ()),
                 empty_params);
             ctx.BuildInnerChannelFactory<IRequestChannel> ();
         }

Atsushi Eno

On 2010/07/06 21:34, Thiago Padilha wrote:
>    Hi Atsushi,
>
>    While examining the file "Binding.cs" I found the following comment
> on the two overloads of "CreateContext" method :
>
> "
> // FIXME: it seems that binding elements are
> // "validated" so that the last item is a transport.
> "
>    If you were unsure about where the binding elements should be
> ordered take a look at this :
> http://msdn.microsoft.com/en-us/library/system.servicemodel.channels.binding.createbindingelements.aspx
>    According to this document, the ordering should be done inside the
> "CreateBindingElements" method for any class that inherits from
> "Binding". This could be fixed by using the following code in
> "CustomBinding.cs" :
>
> public override BindingElementCollection CreateBindingElements ()
>               {
>                       return new BindingElementCollection (elements.OrderBy 
> (be =>
>                       {
>                               Type t = be.GetType ();
>                               if 
> (typeof(TransportBindingElement).IsAssignableFrom (t))
>                                       return 2;
>                               if 
> (typeof(MessageEncodingBindingElement).IsAssignableFrom (t))
>                                       return 1;
>                               return 0;
>                       }));                    
>               }
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
>
>
>    

_______________________________________________
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list

Reply via email to