System.ServiceModel 4.0.0.0 System.ServiceModel.Channels.Binding

Use a custom binding when one of the system-provided bindings does not meet the requirements of your service. A custom binding could be used, for example, to enable the use of a new transport or a new encoder at a service endpoint.

A custom binding is constructed using one of the from a collection of binding elements that are "stacked" in a specific order:

At the top is an optional that allows flowing transactions.

Next is an optional that provides a session and ordering mechanism as defined in the WS-ReliableMessaging specification. This notion of a session can cross SOAP and transport intermediaries.

Next is an optional security binding element that provides security features like authorization, authentication, protection, and confidentiality. The following security binding elements are provided by indigo1:

Next are the optional message-patterns specified by binding elements:

Next are the optional transport upgrades/helpers binding elements:

Next is a required message encoding binding element. You can use your own transport or use one of the following message encoding bindings:

At the bottom is a required transport element. You can use your own transport or use one of transport binding elements provided by indigo1:

The following table summarizes the options for each layer.

Layer

Options

Required

Transaction Flow

No

Reliability

No

Security

Symmetric, Asymmetric, Transport-Level

No

Shape Change

No

Transport Upgrades

SSL stream, Windows stream, Peer Resolver

No

Encoding

Text, Binary, MTOM, Custom

Yes

Transport

TCP, Named Pipes, HTTP, HTTPS, flavors of MSMQ, Custom

Yes

In addition, you can define your own binding elements and insert them between any of the preceding defined layers.

For a discussion on how to use a custom binding to modify a system-provided binding, see How To: Customize a System-Provided Binding.

When calling a indigo2 service built with.Net Framework 4.0 from a WCF client application built with netfx35_short or earlier, the configuration file generated by svcutil.exe or adding a service reference from vsprvs will contain the validity attribute in the binding configuration. This attribute is not recognized by the netfx35_short runtime and the application will thrown an with the message "Unrecognized attribute validity". To workaround this problem, remove the validity attribute from the binding configuration.

Defines a binding from a list of binding elements.

- Constructor
  4.0.0.0
  To be added.

  Initializes a new instance of the class.

- Constructor
  4.0.0.0
  To be added.
  To be added.

  Initializes a new instance of the class with the binding elements from a complete channel stack.

- Constructor
  4.0.0.0
  To be added.

  Initializes a new instance of the class from the values of a specified binding.

  The that is used to initialize the custom binding.
- Constructor
  4.0.0.0
  System.ParamArray
  To be added.
  To be added.

  Initializes a new instance of the class from an array of binding elements.

- Constructor
  4.0.0.0
  To be added.

  The binding element named by

  Initializes a new instance of the class.

- Constructor
  4.0.0.0
  System.ParamArray
  To be added.
  To be added.

  Initializes a new instance of the class from an array of binding elements with a specified name and namespace.

  The name of the binding.
  The namespace of the binding.
- Method
  4.0.0.0
  System.ServiceModel.Channels.BindingElementCollection To be added.

  Returns a generic collection of the binding elements from the custom binding.

  An object of type that contains the binding elements from the custom binding.

- Property
  4.0.0.0
  System.ServiceModel.Channels.BindingElementCollection To be added. To be added.

  Gets the binding elements from the custom binding.

- Property
  4.0.0.0
  System.String To be added.

  This method is provided to enable binding validation against base addresses.

  Gets the URI scheme for transport used by the custom binding.