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 prvků vazby, z nichž každý popisuje aspekt toho, jak koncový bod komunikuje s jinými koncovými body a které jsou konzistentně zabudová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. Pro kanály protokolu může existovat libovolný počet prvků vazby, ale pouze jeden prvek vazby pro každý přenos a kodér zpráv. Vazba má obvykle šest vrstev prvků vazby. 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) 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, windows stream, partnerský překladač No
Encoding Text, Binary, MTOM, Custom Yes
Přenos TCP, pojmenované kanály, HTTP, HTTPS, MSMQ, vlastní Yes

Každý element vazby poskytuje specifikaci pro vytvoření kanálu factory 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 jeden kanál factory pro každý prvek vazby ve vazbě. Stejný druh mapování platí pro naslouchací procesy kanálu v zásobníku ve službě. Konzistence klienta a služby je zásadní pro navázání připojení mezi těmito koncovými body na základě kanálu. 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 BindingName a Namespace , které ji společně jedineč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 Scheme vlastností. Pokud například chcete přidat další vazby HTTP, můžete je pojmenovat, jak chcete, a nastavit všechna jejich schémata na "http". Neexistuje žádná vlastní aplikace nebo odesílání 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 vedle sebe tak, že každé verzi pojmenujete jinak.

Třída Binding implementuje IDefaultCommunicationTimeouts rozhraní pro zmírnění útoků DOS (DoS), které se spoléhají na vázání prostředků v delších časových intervalech. Implementace určuje hodnoty časových limitů 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. Vlastnosti použité k získání a nastavení těchto časových limitů a operace jejich výchozích hodnot jsou shrnuty v následující tabulce.

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

Když vytváříte vazbu děděním z Binding, musíte přepsat CreateBindingElements.

Kromě toho můžete definovat vlastní prvky vazby a vložit je mezi libovolnou vrstvu definovanou 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 připojení k uzavření před přenos vyvolá výjimku.

MessageVersion

Získá verzi zprávy používané klienty a služby nakonfigurované s vazbou.

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 poskytnutý pro připojení k otevření před přenos vyvolá výjimku.

ReceiveTimeout

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

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)

Vytvoří 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[])

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

BuildChannelListener<TChannel>(BindingParameterCollection)

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

BuildChannelListener<TChannel>(Object[])

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

BuildChannelListener<TChannel>(Uri, BindingParameterCollection)

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

BuildChannelListener<TChannel>(Uri, Object[])

Vytvoří 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)

Vytvoří 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)

Vytvoří 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[])

Vytvoří 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[])

Vytvoří 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 vytvořit zásobník pro vytváření kanálů na klientovi, 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 kanál factory zásobníku na klientovi, který splňuje požadavky zadané 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 zadaných parametrů vazby.

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, která obsahuje prvky 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í zadaný objekt požadovaný, pokud existuje, z příslušné vrstvy v zásobníku vazby.

GetType()

Získá aktuální Type instanci.

(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 má být serializován obor názvů vazby.

ToString()

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

(Zděděno od Object)

Platí pro