Share via


CustomBinding Třída

Definice

Definuje vazbu ze seznamu prvků vazby.

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
Dědičnost
CustomBinding
Atributy

Příklady

Následující příklad ukazuje, jak vytvořit CustomBinding objekt pomocí ReliableSessionBindingElement a 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

Poznámky

Vlastní vazbu použijte, pokud některá ze systémem poskytovaných vazeb nesplňuje požadavky vaší služby. Vlastní vazbu je možné použít například k povolení použití nového přenosu nebo nového kodéru v koncovém bodu služby.

Vlastní vazba se vytváří pomocí jednoho z elementů CustomBinding z kolekce elementů vazby, které jsou "skládané" v určitém pořadí:

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, varianty MSMQ, vlastní Yes

Kromě toho můžete definovat vlastní prvky vazby a vložit je mezi libovolnou z výše definovaných vrstev.

Diskuzi o tom, jak použít vlastní vazbu k úpravě vazby poskytované systémem, najdete v tématu Postupy: Přizpůsobení vazby System-Provided.

Poznámka

Při volání služby WCF sestavené pomocí rozhraní .NET Framework 4.0 nebo novější z klientské aplikace WCF sestavené pomocí rozhraní .NET Framework 3.5 nebo starší konfigurační soubor vygenerovaný svcutil.exe nebo přidání odkazu na službu ze sady Visual Studio bude obsahovat atribut validity v konfiguraci vazby. Modul runtime rozhraní .NET Framework 3.5 tento atribut nerozpozná a aplikace vyvolá ConfigurationErrorsException zprávu s informací o nerozpoznané platnosti atributu. Pokud chcete tento problém vyřešit, odeberte atribut validity z konfigurace vazby.

Konstruktory

CustomBinding()

Inicializuje novou instanci CustomBinding třídy .

CustomBinding(Binding)

Inicializuje novou instanci CustomBinding třídy z hodnot zadané vazby.

CustomBinding(BindingElement[])

Inicializuje novou instanci CustomBinding třídy z pole elementů vazby.

CustomBinding(IEnumerable<BindingElement>)

Inicializuje novou instanci CustomBinding třídy s prvky vazby z kompletního zásobníku kanálu.

CustomBinding(String)

Inicializuje novou instanci CustomBinding třídy .

CustomBinding(String, String, BindingElement[])

Inicializuje novou instanci CustomBinding třídy z pole elementů vazby se zadaným názvem a oborem názvů.

Vlastnosti

CloseTimeout

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

(Zděděno od Binding)
Elements

Získá prvky vazby z vlastní vazby.

MessageVersion

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

(Zděděno od Binding)
Name

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

(Zděděno od Binding)
Namespace

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

(Zděděno od Binding)
OpenTimeout

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

(Zděděno od Binding)
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.

(Zděděno od Binding)
Scheme

Získá schéma identifikátoru URI pro přenos používaný vlastní vazbou.

SendTimeout

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

(Zděděno od Binding)

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.

(Zděděno od Binding)
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ů.

(Zděděno od Binding)
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.

(Zděděno od Binding)
BuildChannelListener<TChannel>(Object[])

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

(Zděděno od Binding)
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.

(Zděděno od Binding)
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.

(Zděděno od Binding)
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.

(Zděděno od Binding)
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.

(Zděděno od Binding)
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.

(Zděděno od Binding)
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.

(Zděděno od Binding)
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.

(Zděděno od Binding)
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ů.

(Zděděno od Binding)
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é.

(Zděděno od Binding)
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ů.

(Zděděno od Binding)
CreateBindingElements()

Vrátí obecnou kolekci elementů vazby z vlastní 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.

(Zděděno od Binding)
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.

(Zděděno od Binding)
ShouldSerializeNamespace()

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

(Zděděno od Binding)
ToString()

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

(Zděděno od Object)

Platí pro