Binding Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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 Binding má Name 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) |