CustomBinding Класс

Определение

Определяет привязку из списка элементов привязки.

public ref class CustomBinding : System::ServiceModel::Channels::Binding
public class CustomBinding : System.ServiceModel.Channels.Binding
[System.Windows.Markup.ContentProperty("Elements")]
public class CustomBinding : System.ServiceModel.Channels.Binding
type CustomBinding = class
    inherit Binding
[<System.Windows.Markup.ContentProperty("Elements")>]
type CustomBinding = class
    inherit Binding
Public Class CustomBinding
Inherits Binding
Наследование
CustomBinding
Атрибуты

Примеры

В следующем примере показано, как создать CustomBinding объект с помощью a ReliableSessionBindingElement и an HttpTransportBindingElement

Uri baseAddress = new Uri("http://localhost:8000/servicemodelsamples/service");

// Create a ServiceHost for the CalculatorService type and provide the base address.
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress))
{
    // Create a custom binding that contains two binding elements.
    ReliableSessionBindingElement reliableSession = new ReliableSessionBindingElement();
    reliableSession.Ordered = true;

    HttpTransportBindingElement httpTransport = new HttpTransportBindingElement();
    httpTransport.AuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous;
    httpTransport.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;

    CustomBinding binding = new CustomBinding(reliableSession, httpTransport);

    // Add an endpoint using that binding.
    serviceHost.AddServiceEndpoint(typeof(ICalculator), binding, "");

    // Add a MEX endpoint.
    ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
    smb.HttpGetEnabled = true;
    smb.HttpGetUrl = new Uri("http://localhost:8001/servicemodelsamples");
    serviceHost.Description.Behaviors.Add(smb);

    // Open the ServiceHostBase to create listeners and start listening for messages.
    serviceHost.Open();

    // The service can now be accessed.
    Console.WriteLine("The service is ready.");
    Console.WriteLine("Press <ENTER> to terminate service.");
    Console.WriteLine();
    Console.ReadLine();

    // Close the ServiceHostBase to shutdown the service.
    serviceHost.Close();
}
Dim baseAddress As New Uri("http://localhost:8000/servicemodelsamples/service")

' Create a ServiceHost for the CalculatorService type and provide the base address.
Using serviceHost As New ServiceHost(GetType(CalculatorService), baseAddress)
    ' Create a custom binding that contains two binding elements.
    Dim reliableSession As New ReliableSessionBindingElement()
    reliableSession.Ordered = True

    Dim httpTransport As New HttpTransportBindingElement()
    httpTransport.AuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous
    httpTransport.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard

    Dim binding As New CustomBinding(reliableSession, httpTransport)

    ' Add an endpoint using that binding.
    serviceHost.AddServiceEndpoint(GetType(ICalculator), binding, "")

    ' Add a MEX endpoint.
    Dim smb As New ServiceMetadataBehavior()
    smb.HttpGetEnabled = True
    smb.HttpGetUrl = New Uri("http://localhost:8001/servicemodelsamples")
    serviceHost.Description.Behaviors.Add(smb)

    ' Open the ServiceHostBase to create listeners and start listening for messages.
    serviceHost.Open()

    ' The service can now be accessed.
    Console.WriteLine("The service is ready.")
    Console.WriteLine("Press <ENTER> to terminate service.")
    Console.WriteLine()
    Console.ReadLine()

    ' Close the ServiceHostBase to shutdown the service.
    serviceHost.Close()
End Using

Комментарии

Используйте пользовательскую привязку, если одна из системных привязок не соответствует требованиям службы. Пользовательская привязка может использоваться, например, для включения использования нового транспорта или нового кодировщика в конечной точке службы.

Пользовательская привязка создается с помощью одной из CustomBinding коллекции элементов привязки, которые "стекаются" в определенном порядке:

В следующей таблице перечислены параметры каждого слоя.

Уровень Параметры Обязательный
Поток транзакций TransactionFlowBindingElement Нет
Reliability ReliableSessionBindingElement Нет
Безопасность Симметричная, асимметричная, Transport-Level Нет
Изменение фигуры CompositeDuplexBindingElement Нет
Обновления транспорта SSL-поток, поток Windows, одноранговый сопоставитель Нет
Кодирование Текст, бинарный, MTOM, пользовательский Yes
Transport TCP, именованные каналы, HTTP, HTTPS, вкусы MSMQ, Custom Yes

Кроме того, можно определить собственные элементы привязки и вставить их между любым из предыдущих определенных слоев.

Сведения о том, как использовать пользовательскую привязку для изменения предоставленной системой привязки, см. в статье "Практическое руководство. Настройка привязки System-Provided".

Note

При вызове службы WCF, созданной с помощью .NET Framework 4.0 или более поздней версии, из клиентского приложения WCF, созданного с помощью .NET Framework 3.5 или более ранней версии, файл конфигурации, созданный svcutil.exe или добавив ссылку на службу из Visual Studio, будет содержать атрибут допустимости в конфигурации привязки. Этот атрибут не распознается средой выполнения .NET Framework 3.5, и приложение создаст ConfigurationErrorsException с сообщением "Нераспознанное значение допустимости атрибута". Чтобы устранить эту проблему, удалите атрибут допустимости из конфигурации привязки.

Конструкторы

Имя Описание
CustomBinding()

Инициализирует новый экземпляр класса CustomBinding.

CustomBinding(Binding)

Инициализирует новый экземпляр CustomBinding класса из значений указанной привязки.

CustomBinding(BindingElement[])

Инициализирует новый экземпляр CustomBinding класса из массива элементов привязки.

CustomBinding(IEnumerable<BindingElement>)

Инициализирует новый экземпляр класса с элементами привязки CustomBinding из полного стека каналов.

CustomBinding(String, String, BindingElement[])

Инициализирует новый экземпляр CustomBinding класса из массива элементов привязки с указанным именем и пространством имен.

CustomBinding(String)

Инициализирует новый экземпляр класса CustomBinding.

Свойства

Имя Описание
CloseTimeout

Возвращает или задает интервал времени, предоставленный для закрытия соединения перед тем, как транспорт вызывает исключение.

(Унаследовано от Binding)
Elements

Возвращает элементы привязки из пользовательской привязки.

MessageVersion

Возвращает версию сообщения, используемую клиентами и службами, настроенными с привязкой.

(Унаследовано от Binding)
Name

Возвращает или задает имя привязки.

(Унаследовано от Binding)
Namespace

Возвращает или задает пространство имен XML привязки.

(Унаследовано от Binding)
OpenTimeout

Возвращает или задает интервал времени, предоставленный для открытия подключения, прежде чем транспорт вызывает исключение.

(Унаследовано от Binding)
ReceiveTimeout

Возвращает или задает интервал времени, в течение которого соединение не может оставаться неактивным, в течение которого сообщения приложения не будут получены до удаления.

(Унаследовано от Binding)
Scheme

Возвращает схему URI для транспорта, используемого пользовательской привязкой.

SendTimeout

Возвращает или задает интервал времени, предоставленный для выполнения операции записи перед тем, как транспорт вызывает исключение.

(Унаследовано от Binding)

Методы

Имя Описание
BuildChannelFactory<TChannel>(BindingParameterCollection)

Создает стек фабрики каналов на клиенте, который создает указанный тип канала и удовлетворяет функциям, указанным в коллекции параметров привязки.

(Унаследовано от Binding)
BuildChannelFactory<TChannel>(Object[])

Создает стек фабрики каналов на клиенте, который создает указанный тип канала и удовлетворяет функциям, указанным массивом объектов.

(Унаследовано от Binding)
BuildChannelListener<TChannel>(BindingParameterCollection)

Создает прослушиватель каналов в службе, которая принимает указанный тип канала и удовлетворяет функциям, указанным в коллекции параметров привязки.

(Унаследовано от Binding)
BuildChannelListener<TChannel>(Object[])

Создает прослушиватель каналов в службе, которая принимает указанный тип канала и удовлетворяет указанным функциям.

(Унаследовано от Binding)
BuildChannelListener<TChannel>(Uri, BindingParameterCollection)

Создает прослушиватель каналов в службе, которая принимает указанный тип канала и удовлетворяет указанным функциям.

(Унаследовано от Binding)
BuildChannelListener<TChannel>(Uri, Object[])

Создает прослушиватель каналов в службе, которая принимает указанный тип канала и удовлетворяет указанным функциям.

(Унаследовано от Binding)
BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection)

Создает прослушиватель каналов в службе, которая принимает указанный тип канала и удовлетворяет указанным функциям.

(Унаследовано от Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection)

Создает прослушиватель каналов в службе, которая принимает указанный тип канала и удовлетворяет указанным функциям.

(Унаследовано от Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[])

Создает прослушиватель каналов в службе, которая принимает указанный тип канала и удовлетворяет указанным функциям.

(Унаследовано от Binding)
BuildChannelListener<TChannel>(Uri, String, Object[])

Создает прослушиватель каналов в службе, которая принимает указанный тип канала и удовлетворяет указанным функциям.

(Унаследовано от Binding)
CanBuildChannelFactory<TChannel>(BindingParameterCollection)

Возвращает значение, указывающее, может ли текущая привязка создавать стек фабрики каналов на клиенте, который удовлетворяет коллекции указанных параметров привязки.

(Унаследовано от Binding)
CanBuildChannelFactory<TChannel>(Object[])

Возвращает значение, указывающее, может ли текущая привязка создавать стек фабрики каналов на клиенте, удовлетворяющим требованиям, заданным массивом объектов.

(Унаследовано от Binding)
CanBuildChannelListener<TChannel>(BindingParameterCollection)

Возвращает значение, указывающее, может ли текущая привязка создать стек прослушивателя каналов в службе, которая удовлетворяет коллекции указанных параметров привязки.

(Унаследовано от Binding)
CanBuildChannelListener<TChannel>(Object[])

Возвращает значение, указывающее, может ли текущая привязка создавать стек прослушивателя каналов в службе, удовлетворяющей критериям, указанным в массиве объектов.

(Унаследовано от Binding)
CreateBindingElements()

Возвращает универсальную коллекцию элементов привязки из пользовательской привязки.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetProperty<T>(BindingParameterCollection)

Возвращает типизированный объект, запрошенный, если он присутствует, из соответствующего слоя в стеке привязки.

(Унаследовано от Binding)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ShouldSerializeName()

Возвращает, следует ли сериализовать имя привязки.

(Унаследовано от Binding)
ShouldSerializeNamespace()

Возвращает, следует ли сериализовать пространство имен привязки.

(Унаследовано от Binding)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к