BinaryMessageEncodingBindingElement Constructor

Initializes a new instance of the BinaryMessageEncodingBindingElement class.

Namespace:  System.ServiceModel.Channels
Assembly:  System.ServiceModel (in System.ServiceModel.dll)

public BinaryMessageEncodingBindingElement()

    // This is an example of how to create a custom binding with a specified encoding and tansport,
    // and how to create and open a channel for the service endpoint configured with the custom binding.
    public partial class MainPage : UserControl
        //Declare a separate UI thread.
        SynchronizationContext uiThread; 

        public MainPage()

        private void Button_Click(object sender, RoutedEventArgs e)

            //Create a custom binding that uses HTTP and binary message encoding.
            var elements = new List<BindingElement>();
            elements.Add(new BinaryMessageEncodingBindingElement());
            elements.Add(new HttpTransportBindingElement());
            var binding = new CustomBinding(elements);

            //Create a channel factory for the service endpoint configured with the custom binding.
            var cf = new ChannelFactory<IService1>(binding, new EndpointAddress("http://localhost:10483/Service1.svc"));

            //Save the synchronized context for the UI thread.
            uiThread = SynchronizationContext.Current;

            //Open the channel.
            IService1 channel = cf.CreateChannel();

            //Invoke the GetPerson method on the service asynchronously. The signature is:
            //IAsyncResult BeginGetPerson(int personId, AsyncCallback callback, object state)
            channel.BeginGetPerson(4, GetPersonCallback, channel);


        //Implement the callback. 
        void GetPersonCallback(IAsyncResult asyncResult)
            Person p = ((IService1)asyncResult.AsyncState).EndGetPerson(asyncResult);

            //Update the UI thread and its output with the result of the method call.
            uiThread.Post(UpdateUI, p);


        //Update the result displayed for the GetPerson invocation.
        private void UpdateUI(object state)
            Person p = (Person)state;
            resultPersonName.Text = "The name of the Person is: " + p.Name;
            resultPersonAge.Text = "The age of the Person is: " + p.Age;


Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Windows Phone OS 7.0

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Community Additions