Binding Třída

Definice

Obsahuje prvky vazby, 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 toho, jak koncový bod komunikuje s jinými koncovými body a které jsou konzistentně integrovány 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. Může existovat libovolný počet elementů vazby pro kanály protokolu, ale jeden a pouze jeden element vazby pro každý přenos a kodér zpráv. Obvykle je v vazbě šest vrstev elementů vazby. Vyžadují se pouze prvky vazby přenosu a kódování v dolní části zásobníku. Vzhledem k tomu, že je vyžadováno kódování pro každou vazbu, pokud kódování není zadáno, Windows Communication Foundation (WCF) přidá výchozí kódování za vás. Výchozí hodnota je Text/XML pro přenosy HTTP a HTTPS a Binární pro ostatní přenosy.

Následující tabulka shrnuje možnosti pro jednotlivé vrstvy.

Vrstva Možnosti Vyžadováno
Tok transakcí TransactionFlowBindingElement No
Spolehlivost ReliableSessionBindingElement No
Zabezpečení Symetrické, Asymetrické, Transport-Level No
Změna obrazce CompositeDuplexBindingElement No
Upgrady přenosu Stream SSL, stream Windows, Peer Resolver No
Encoding Text, Binární, MTOM, Vlastní Yes
Přenos TCP, pojmenované kanály, HTTP, HTTPS, MSMQ, vlastní Yes

Každý element vazby poskytuje specifikaci pro vytvoření objektu pro vytváření kanálů v klientovi a naslouchacího procesu kanálu ve službě. Při vytváření zásobníku pro vytváření kanálů je například v zásobníku jedna továrna kanálu pro každý element vazby ve vazbě. Stejný druh mapování platí pro naslouchací procesy kanálů 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 spojuje, a tyto kanály pak můžou odesílat a přijímat zprávy používané ke komunikaci.

Každá instance objektu BindingName a Namespace , které ho společně jednoznačně identifikují v metadatech služby. Pokud není zadán žádný název nebo obor názvů, WCF přidá výchozí hodnoty za vás. 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 vlastností Scheme . Pokud například chcete přidat další vazby HTTP, můžete je pojmenovat, jak chcete, a všechna jejich schémata nastavit na "http". Neexistuje žádné vlastní odeslání aplikace nebo počítače založené na Scheme. Vyhnete se tak běžnému problému s nemožností zaregistrovat další obslužné rutiny pro dobře známé protokoly. Můžete také snadno pracovat s několika verzemi vazby současně tak, že každou verzi pojmenujete jinak.

Třída Binding implementuje IDefaultCommunicationTimeouts rozhraní pro zmírnění útoků dos (Denial of Service), které se spoléhají na vázané prostředky v delších časových intervalech. Implementace určuje hodnoty časového limitu komunikace pro otevírání a ukončování připojení a pro operace čtení a zápisu spojené s přijímáním a odesíláním zpráv. Následující tabulka shrnuje vlastnosti použité k získání a nastavení těchto časových limitů a operace jejich výchozích hodnot.

Vlastnost Vypršení časového limitu Výchozí hodnota
OpenTimeout 1 min.
CloseTimeout 1 min.
SendTimeout 1 min.
ReceiveTimeout 10 minut

Při vytváření vazby děděním z Bindingje 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 CustomBinding třídě.

Konstruktory

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

CloseTimeout

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

MessageVersion

Získá verzi zprávy, kterou používají klienti a služby nakonfigurované pomocí vazby.

Name

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

Namespace

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

OpenTimeout

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

ReceiveTimeout

Získá nebo nastaví časový interval, kdy připojení může zůstat neaktivní, během které nejsou přijaty žádné zprávy aplikace, před jeho ukončením.

Scheme

Při implementaci v odvozené třídě nastaví schéma identifikátoru URI, které určuje přenos používaný továrnami kanálů a naslouchacích procesů vytvořených vazbami.

SendTimeout

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

Metody

BuildChannelFactory<TChannel>(BindingParameterCollection)

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

BuildChannelFactory<TChannel>(Object[])

Sestaví zásobník pro vytváření kanálů na klientovi, který vytvoří zadaný typ kanálu a vyhovuje funkcím určeným 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á označuje, zda aktuální vazba může na klientovi vytvořit zásobník pro vytváření kanálů, který splňuje kolekci zadaných parametrů vazby.

CanBuildChannelFactory<TChannel>(Object[])

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

CanBuildChannelListener<TChannel>(BindingParameterCollection)

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

CanBuildChannelListener<TChannel>(Object[])

Vrátí hodnotu, která označ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 obsahující elementy vazby, které jsou součástí aktuální vazby.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

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

Slouží jako výchozí hashovací funkce.

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

Vrátí typovaný objekt požadovaný, pokud existuje, z příslušné vrstvy v zásobníku vazby.

GetType()

Type Získá z aktuální instance.

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

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

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

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

ShouldSerializeNamespace()

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

ToString()

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

(Zděděno od Object)

Platí pro