Sdílet prostřednictvím


Binding Třída

Definice

Obsahuje vazbové prvky, které určují protokoly, přenosy a kodéry zpráv používané pro komunikaci mezi klienty a službami.

public ref class Binding abstract : System::ServiceModel::IDefaultCommunicationTimeouts
public abstract class Binding : System.ServiceModel.IDefaultCommunicationTimeouts
type Binding = class
    interface IDefaultCommunicationTimeouts
Public MustInherit Class Binding
Implements IDefaultCommunicationTimeouts
Dědičnost
Binding
Odvozené
Implementuje

Příklady

BasicHttpBinding binding = new BasicHttpBinding();

binding.Name = "binding1";

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

// Create a ServiceHost for the CalculatorService type and provide the base address.
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress))
{
    serviceHost.AddServiceEndpoint(typeof(ICalculator), binding, address);

    // 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();
}

Poznámky

Představuje kolekci vazeb prvků, z nichž každá popisuje aspekt komunikace koncového bodu s jinými koncovými body a které jsou konzistentně integrované do objektu pro vytváření kanálů v klientovi a do naslouchacího procesu kanálu ve službě. Vazba obsahuje kolekci prvků vazby, které odpovídají kanálům protokolu, přenosovým kanálům a kodérům zpráv. Pro kanály protokolu může existovat libovolný počet vazeb, ale jeden a pouze jeden element vazby pro každý přenos a kodér zpráv. V vazbě je obvykle šest vrstev vazeb. Vyžadují se pouze prvky vazby přenosu a kódování v dolní části zásobníku. Vzhledem k tomu, že pro každou vazbu je vyžadováno kódování, pokud není zadáno kódování, windows Communication Foundation (WCF) za vás přidá výchozí kódování. Výchozí hodnota je Text/XML pro přenosy HTTP a HTTPS a Binary pro jiné přenosy.

Následující tabulka shrnuje možnosti pro každou vrstvu.

Vrstva Možnosti Povinné
Tok transakcí TransactionFlowBindingElement Ne
Spolehlivost ReliableSessionBindingElement Ne
Zabezpečení Symetrické, asymetrické, Transport-Level Ne
Změna obrazce CompositeDuplexBindingElement Ne
Upgrady přenosu Stream SSL, Stream Systému Windows, Překladač partnerských uzlů Ne
Encoding Text, Binární, MTOM, Vlastní Ano
Přeprava TCP, Pojmenované kanály, HTTP, HTTPS, MSMQ, Vlastní Ano

Každý element vazby poskytuje specifikaci pro vytvoření objektu pro vytváření kanálů na klientovi a naslouchací proces kanálu ve službě. Při vytváření zásobníku objektu pro vytváření kanálů existuje například jedna továrna kanálu v zásobníku pro každý prvek vazby v vazbě. Stejný typ mapování platí pro naslouchací procesy kanálu v zásobníku ve službě. Konzistence klienta a služby je důležitá pro vytvoření připojení založeného na kanálu mezi těmito koncovými body. Každá továrna a naslouchací proces zase zpracovává odesílání a přijímání odpovídajících kanálů v zásobníku kanálů, které je propojí, a tyto kanály pak můžou odesílat a přijímat zprávy používané ke komunikaci.

Každá instance objektu Binding má a NameNamespace společně ji jednoznačně identifikují v metadatech služby. Pokud není zadán žádný název nebo obor názvů, WCF za vás přidá výchozí hodnoty. Výchozí název je null a výchozí obor názvů je http://tempuri.org/. Toto uživatelské jméno pro vazbu se liší od specifikace názvu protokolu, který je určen Scheme vlastností. Pokud například chcete přidat další vazby HTTP, můžete je pojmenovat, co chcete, a nastavit všechna jejich schémata na "http". Na základě zařízení neexistuje žádná vlastní aplikace ani strojový dispečink .Scheme Vyhnete se tak běžnému problému nemožnosti zaregistrovat další obslužné rutiny pro dobře známé protokoly. Můžete také snadno pracovat s několika verzemi vazby vedle sebe tím, že každé verzi pojmenujete jinak.

Třída Binding implementuje IDefaultCommunicationTimeouts rozhraní pro zmírnění útoků DOS (Denial of Service), které spoléhají na vázání prostředků v delších intervalech. Implementace určuje hodnoty časového limitu komunikace pro otevírání a zavírání připojení a pro operace čtení a zápisu spojené s příjmem a odesíláním zpráv. Vlastnosti použité k získání a nastavení těchto časových limitů a jejich výchozích hodnot jsou shrnuty v následující tabulce.

Vlastnost časového limitu Výchozí hodnota
OpenTimeout 1 minuta
CloseTimeout 1 minuta
SendTimeout 1 minuta
ReceiveTimeout 10 minut

Při vytváření vazby děděním z Binding, je nutné přepsat CreateBindingElements.

Kromě toho můžete definovat vlastní prvky vazby a vložit je mezi libovolnou z definovaných vrstev v předchozí tabulce. Další informace najdete ve třídě CustomBinding.

Konstruktory

Name Description
Binding()

Inicializuje novou instanci Binding třídy s výchozím názvem a oborem názvů.

Binding(String, String)

Inicializuje novou instanci Binding třídy ze zadané vazby služby.

Vlastnosti

Name Description
CloseTimeout

Získá nebo nastaví časový interval zadaný pro připojení zavřít před přenos vyvolá výjimku.

MessageVersion

Získá verzi zprávy používanou klienty a službami nakonfigurovanými vazbou.

Name

Získá nebo nastaví název vazby.

Namespace

Získá nebo nastaví obor názvů XML vazby.

OpenTimeout

Získá nebo nastaví interval času zadaného pro připojení k otevření před přenos vyvolá výjimku.

ReceiveTimeout

Získá nebo nastaví interval doby, po kterou může připojení zůstat neaktivní, během kterého nejsou přijaty žádné zprávy aplikace, než se zahodí.

Scheme

Při implementaci v odvozené třídě nastaví schéma identifikátoru URI, které určuje přenos používaný kanálem a továrnami naslouchacího procesu, které jsou vytvořeny vazbami.

SendTimeout

Získá nebo nastaví interval času zadaný pro operaci zápisu dokončit před přenos vyvolá výjimku.

Metody

Name Description
BuildChannelFactory<TChannel>(BindingParameterCollection)

Sestaví zásobník objektu pro vytváření kanálů na klientovi, který vytvoří zadaný typ kanálu a který splňuje funkce určené kolekcí parametrů vazby.

BuildChannelFactory<TChannel>(Object[])

Sestaví zásobník objektu pro vytváření kanálů na klientovi, který vytvoří zadaný typ kanálu a splňuje funkce určené polem objektů.

BuildChannelListener<TChannel>(BindingParameterCollection)

Sestaví naslouchací proces kanálu ve službě, která přijímá zadaný typ kanálu a splňuje funkce určené kolekcí parametrů vazby.

BuildChannelListener<TChannel>(Object[])

Sestaví naslouchací proces kanálu ve službě, která přijímá zadaný typ kanálu a splňuje zadané funkce.

BuildChannelListener<TChannel>(Uri, BindingParameterCollection)

Sestaví naslouchací proces kanálu ve službě, která přijímá zadaný typ kanálu a splňuje zadané funkce.

BuildChannelListener<TChannel>(Uri, Object[])

Sestaví naslouchací proces kanálu ve službě, která přijímá zadaný typ kanálu a splňuje zadané funkce.

BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection)

Sestaví naslouchací proces kanálu ve službě, která přijímá zadaný typ kanálu a splňuje zadané funkce.

BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection)

Sestaví naslouchací proces kanálu ve službě, která přijímá zadaný typ kanálu a splňuje zadané funkce.

BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[])

Sestaví naslouchací proces kanálu ve službě, která přijímá zadaný typ kanálu a splňuje zadané funkce.

BuildChannelListener<TChannel>(Uri, String, Object[])

Sestaví naslouchací proces kanálu ve službě, která přijímá zadaný typ kanálu a splňuje zadané funkce.

CanBuildChannelFactory<TChannel>(BindingParameterCollection)

Vrátí hodnotu, která určuje, zda aktuální vazba může vytvořit zásobník objektu pro vytváření kanálů na klientovi, který splňuje kolekci zadaných parametrů vazby.

CanBuildChannelFactory<TChannel>(Object[])

Vrátí hodnotu, která určuje, zda aktuální vazba může vytvořit zásobník objektu pro vytváření kanálů na klientovi, který splňuje požadavky určené polem objektů.

CanBuildChannelListener<TChannel>(BindingParameterCollection)

Vrátí hodnotu, která určuje, zda aktuální vazba může sestavit zásobník naslouchacího procesu kanálu ve službě, která splňuje kolekci zadaných parametrů vazby.

CanBuildChannelListener<TChannel>(Object[])

Vrátí hodnotu, která určuje, zda aktuální vazba může vytvořit zásobník naslouchacího procesu kanálu ve službě, která splňuje kritéria zadaná v poli objektů.

CreateBindingElements()

Při přepsání v odvozené třídě vytvoří kolekci, která obsahuje prvky vazby, které jsou součástí aktuální vazby.

Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetProperty<T>(BindingParameterCollection)

Vrátí požadovaný typ objektu z příslušné vrstvy v zásobníku vazeb.

GetType()

Získá Type aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
ShouldSerializeName()

Vrátí, zda má být název vazby serializován.

ShouldSerializeNamespace()

Vrátí, zda má být obor názvů vazby serializován.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro