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í a ReliableSessionBindingElementHttpTransportBindingElement

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

Použijte vlastní vazbu, pokud jedna ze systémový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 je vytvořena pomocí jedné z CustomBinding kolekce vazeb prvků, které jsou "skládané" v určitém pořadí:

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

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

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

Diskuzi o použití vlastní vazby k úpravě systémové vazby naleznete v tématu Postupy: Přizpůsobení vazby System-Provided.

Note

Při volání služby WCF vytvořené pomocí rozhraní .NET Framework 4.0 nebo novější z klientské aplikace WCF vytvořené pomocí rozhraní .NET Framework 3.5 nebo starší, konfigurační soubor vygenerovaný svcutil.exe nebo přidání odkazu na službu z Visual Studio bude obsahovat atribut platnosti v konfiguraci vazby. Tento atribut není rozpoznán modulem runtime .NET Framework 3.5 a aplikace vyvolá ConfigurationErrorsException se zprávou "Nerozpoznaná platnost atributu". Chcete-li tento problém vyřešit, odeberte atribut platnosti z konfigurace vazby.

Konstruktory

Name Description
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 vazeb prvků.

CustomBinding(IEnumerable<BindingElement>)

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

CustomBinding(String, String, BindingElement[])

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

CustomBinding(String)

Inicializuje novou instanci CustomBinding třídy.

Vlastnosti

Name Description
CloseTimeout

Získá nebo nastaví časový interval zadaný pro připojení zavřít 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 používanou klienty a službami nakonfigurovanými vazbou.

(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í interval času zadaného pro připojení k otevření před přenos vyvolá výjimku.

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

(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í interval času zadaný pro operaci zápisu dokončit před přenos vyvolá výjimku.

(Zděděno od Binding)

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.

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

(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á 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.

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

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

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

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

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

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

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

Vrátí, zda má být obor názvů vazby 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