Udostępnij za pośrednictwem


CustomBinding Klasa

Definicja

Definiuje powiązanie z listy elementów powiązania.

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
Dziedziczenie
CustomBinding
Atrybuty

Przykłady

W poniższym przykładzie pokazano, jak utworzyć CustomBinding obiekt przy użyciu elementu ReliableSessionBindingElement i 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

Uwagi

Użyj powiązania niestandardowego, gdy jedno z powiązań dostarczonych przez system nie spełnia wymagań usługi. Można na przykład użyć powiązania niestandardowego, aby umożliwić korzystanie z nowego transportu lub nowego kodera w punkcie końcowym usługi.

Powiązanie niestandardowe jest tworzone przy użyciu jednej z CustomBinding kolekcji elementów powiązania, które są "skumulowane" w określonej kolejności:

Poniższa tabela zawiera podsumowanie opcji dla każdej warstwy.

Warstwa Opcje Wymagane
Przepływ transakcji TransactionFlowBindingElement Nie
Niezawodność ReliableSessionBindingElement Nie
Zabezpieczenia Symetryczne, asymetryczne, Transport-Level Nie
Zmiana kształtu CompositeDuplexBindingElement Nie
Uaktualnienia transportu Strumień SSL, strumień systemu Windows, rozpoznawanie równorzędne Nie
Encoding Tekst, binarny, MTOM, niestandardowy Tak
Transport TCP, nazwane potoki, HTTP, HTTPS, smaki MSMQ, niestandardowe Tak

Ponadto można zdefiniować własne elementy powiązania i wstawić je między dowolną z poprzednich zdefiniowanych warstw.

Aby zapoznać się z omówieniem sposobu używania powiązania niestandardowego do modyfikowania powiązania dostarczonego przez system, zobacz How to: Customize a System-Provided Binding (Instrukcje: dostosowywanie powiązania System-Provided).

Uwaga

Podczas wywoływania usługi WCF utworzonej przy użyciu .NET Framework 4.0 lub nowszej z aplikacji klienckiej WCF utworzonej przy użyciu .NET Framework 3.5 lub starszego plik konfiguracji wygenerowany przez svcutil.exe lub dodanie odwołania do usługi z programu Visual Studio będzie zawierać atrybut ważności w konfiguracji powiązania. Ten atrybut nie jest rozpoznawany przez środowisko uruchomieniowe .NET Framework 3.5, a aplikacja zgłosi ConfigurationErrorsException komunikat "Nierozpoznana ważność atrybutu". Aby obejść ten problem, usuń atrybut ważności z konfiguracji powiązania.

Konstruktory

CustomBinding()

Inicjuje nowe wystąpienie klasy CustomBinding.

CustomBinding(Binding)

Inicjuje CustomBinding nowe wystąpienie klasy z wartości określonego powiązania.

CustomBinding(BindingElement[])

Inicjuje CustomBinding nowe wystąpienie klasy z tablicy elementów powiązania.

CustomBinding(IEnumerable<BindingElement>)

Inicjuje CustomBinding nowe wystąpienie klasy z elementami powiązania z kompletnym stosem kanału.

CustomBinding(String)

Inicjuje nowe wystąpienie klasy CustomBinding.

CustomBinding(String, String, BindingElement[])

Inicjuje CustomBinding nowe wystąpienie klasy z tablicy elementów powiązania z określoną nazwą i przestrzenią nazw.

Właściwości

CloseTimeout

Pobiera lub ustawia interwał czasu podanego dla połączenia do zamknięcia, zanim transport zgłasza wyjątek.

(Odziedziczone po Binding)
Elements

Pobiera elementy powiązania z powiązania niestandardowego.

MessageVersion

Pobiera wersję komunikatu używaną przez klientów i usługi skonfigurowane za pomocą powiązania.

(Odziedziczone po Binding)
Name

Pobiera lub ustawia nazwę powiązania.

(Odziedziczone po Binding)
Namespace

Pobiera lub ustawia przestrzeń nazw XML powiązania.

(Odziedziczone po Binding)
OpenTimeout

Pobiera lub ustawia interwał czasu podany dla połączenia do otwarcia, zanim transport zgłosi wyjątek.

(Odziedziczone po Binding)
ReceiveTimeout

Pobiera lub ustawia interwał czasu, przez który połączenie może pozostać nieaktywne, podczas którego nie są odbierane żadne komunikaty aplikacji, zanim zostanie porzucony.

(Odziedziczone po Binding)
Scheme

Pobiera schemat identyfikatora URI do transportu używanego przez powiązanie niestandardowe.

SendTimeout

Pobiera lub ustawia interwał czasu podany dla operacji zapisu do ukończenia, zanim transport zgłosi wyjątek.

(Odziedziczone po Binding)

Metody

BuildChannelFactory<TChannel>(BindingParameterCollection)

Tworzy stos fabryki kanałów na kliencie, który tworzy określony typ kanału i spełnia funkcje określone przez kolekcję parametrów powiązania.

(Odziedziczone po Binding)
BuildChannelFactory<TChannel>(Object[])

Tworzy stos fabryki kanałów na kliencie, który tworzy określony typ kanału i spełnia funkcje określone przez tablicę obiektów.

(Odziedziczone po Binding)
BuildChannelListener<TChannel>(BindingParameterCollection)

Tworzy odbiornik kanału w usłudze, który akceptuje określony typ kanału i spełnia funkcje określone przez kolekcję parametrów powiązania.

(Odziedziczone po Binding)
BuildChannelListener<TChannel>(Object[])

Tworzy odbiornik kanału w usłudze, który akceptuje określony typ kanału i spełnia określone funkcje.

(Odziedziczone po Binding)
BuildChannelListener<TChannel>(Uri, BindingParameterCollection)

Tworzy odbiornik kanału w usłudze, który akceptuje określony typ kanału i spełnia określone funkcje.

(Odziedziczone po Binding)
BuildChannelListener<TChannel>(Uri, Object[])

Tworzy odbiornik kanału w usłudze, który akceptuje określony typ kanału i spełnia określone funkcje.

(Odziedziczone po Binding)
BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection)

Tworzy odbiornik kanału w usłudze, który akceptuje określony typ kanału i spełnia określone funkcje.

(Odziedziczone po Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection)

Tworzy odbiornik kanału w usłudze, który akceptuje określony typ kanału i spełnia określone funkcje.

(Odziedziczone po Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[])

Tworzy odbiornik kanału w usłudze, który akceptuje określony typ kanału i spełnia określone funkcje.

(Odziedziczone po Binding)
BuildChannelListener<TChannel>(Uri, String, Object[])

Tworzy odbiornik kanału w usłudze, który akceptuje określony typ kanału i spełnia określone funkcje.

(Odziedziczone po Binding)
CanBuildChannelFactory<TChannel>(BindingParameterCollection)

Zwraca wartość wskazującą, czy bieżące powiązanie może utworzyć stos fabryki kanału na kliencie, który spełnia określone parametry powiązania.

(Odziedziczone po Binding)
CanBuildChannelFactory<TChannel>(Object[])

Zwraca wartość wskazującą, czy bieżące powiązanie może utworzyć stos fabryki kanału na kliencie, który spełnia wymagania określone przez tablicę obiektów.

(Odziedziczone po Binding)
CanBuildChannelListener<TChannel>(BindingParameterCollection)

Zwraca wartość wskazującą, czy bieżące powiązanie może utworzyć stos odbiornika kanału w usłudze, która spełnia określone parametry powiązania.

(Odziedziczone po Binding)
CanBuildChannelListener<TChannel>(Object[])

Zwraca wartość wskazującą, czy bieżące powiązanie może utworzyć stos odbiornika kanału w usłudze, która spełnia kryteria określone w tablicy obiektów.

(Odziedziczone po Binding)
CreateBindingElements()

Zwraca ogólną kolekcję elementów powiązania z powiązania niestandardowego.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetProperty<T>(BindingParameterCollection)

Zwraca żądany obiekt typu z odpowiedniej warstwy w stosie powiązań.

(Odziedziczone po Binding)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ShouldSerializeName()

Zwraca, czy nazwa powiązania powinna być serializowana.

(Odziedziczone po Binding)
ShouldSerializeNamespace()

Zwraca, czy przestrzeń nazw powiązania powinna być serializowana.

(Odziedziczone po Binding)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy