CustomBinding Klasa

Definicja

Definiuje powiązanie z listy elementów powiązania.Defines a binding from a list of binding elements.

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

Poniższy przykład pokazuje, jak utworzyć CustomBinding Obiekt przy użyciu ReliableSessionBindingElement i HttpTransportBindingElementThe following example shows how to create a CustomBinding object using a ReliableSessionBindingElement and an 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 niestandardowego powiązania, gdy jedno z powiązań dostarczonych przez system nie spełnia wymagań usługi.Use a custom binding when one of the system-provided bindings does not meet the requirements of your service. Można na przykład użyć niestandardowego powiązania, aby umożliwić korzystanie z nowego lub nowego kodera w punkcie końcowym usługi.A custom binding could be used, for example, to enable the use of a new transport or a new encoder at a service endpoint.

Niestandardowe powiązanie jest konstruowane przy użyciu jednej z CustomBinding kolekcji elementów powiązania, które są "ułożone" w określonej kolejności:A custom binding is constructed using one of the CustomBinding from a collection of binding elements that are "stacked" in a specific order:

Poniższa tabela zawiera podsumowanie opcji dla każdej warstwy.The following table summarizes the options for each layer.

WarstwaLayer OpcjeOptions WymaganeRequired
Przepływ transakcjiTransaction Flow TransactionFlowBindingElement NieNo
NiezawodnośćReliability ReliableSessionBindingElement NieNo
ZabezpieczeniaSecurity Symetryczne, asymetryczne, na poziomie transportuSymmetric, Asymmetric, Transport-Level NieNo
Zmiana kształtuShape Change CompositeDuplexBindingElement NieNo
Uaktualnienia transportuTransport Upgrades Strumień SSL, strumień systemu Windows, program rozpoznawania elementów równorzędnychSSL stream, Windows stream, Peer Resolver NieNo
EncodingEncoding Tekst, dane binarne, MTOM, niestandardoweText, Binary, MTOM, Custom TakYes
TransportTransport TCP, nazwane potoki, HTTP, HTTPS, typy usługi MSMQ, niestandardoweTCP, Named Pipes, HTTP, HTTPS, flavors of MSMQ, Custom TakYes

Ponadto można definiować własne elementy powiązania i wstawiać je między wszystkimi wcześniej zdefiniowanymi warstwami.In addition, you can define your own binding elements and insert them between any of the preceding defined layers.

Aby uzyskać informacje na temat sposobu użycia niestandardowego powiązania do modyfikacji powiązania dostarczonego przez system, zobacz How to: Dostosowywanie podanego przez system powiązania.For a discussion on how to use a custom binding to modify a system-provided binding, see How to: Customize a System-Provided Binding.

Uwaga

Podczas wywoływania usługi WCF opartej na .NET Framework 4,0 lub nowszej z aplikacji klienckiej WCF skompilowanej z systemem Program .NET Framework 3,5.NET Framework 3.5 lub wcześniejszym, plik konfiguracyjny 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.When calling a WCF service built with .NET Framework 4.0 or later from a WCF client application built with Program .NET Framework 3,5.NET Framework 3.5 or earlier, the configuration file generated by svcutil.exe or adding a service reference from Visual Studio will contain the validity attribute in the binding configuration. Ten atrybut nie jest rozpoznawany przez Program .NET Framework 3,5.NET Framework 3.5 środowisko uruchomieniowe i aplikacja zwróci ConfigurationErrorsException komunikat "Nierozpoznana ważność atrybutu".This attribute is not recognized by the Program .NET Framework 3,5.NET Framework 3.5 runtime and the application will thrown an ConfigurationErrorsException with the message "Unrecognized attribute validity". Aby obejść ten problem, Usuń atrybut ważności z konfiguracji powiązania.To workaround this problem, remove the validity attribute from the binding configuration.

Konstruktory

CustomBinding()

Inicjuje nowe wystąpienie klasy CustomBinding.Initializes a new instance of the CustomBinding class.

CustomBinding(Binding)

Inicjuje nowe wystąpienie CustomBinding klasy z wartości określonego powiązania.Initializes a new instance of the CustomBinding class from the values of a specified binding.

CustomBinding(BindingElement[])

Inicjuje nowe wystąpienie CustomBinding klasy z tablicy elementów powiązania.Initializes a new instance of the CustomBinding class from an array of binding elements.

CustomBinding(IEnumerable<BindingElement>)

Inicjuje nowe wystąpienie CustomBinding klasy z elementami powiązania ze kompletnego stosu kanału.Initializes a new instance of the CustomBinding class with the binding elements from a complete channel stack.

CustomBinding(String)

Inicjuje nowe wystąpienie klasy CustomBinding.Initializes a new instance of the CustomBinding class.

CustomBinding(String, String, BindingElement[])

Inicjuje nowe wystąpienie CustomBinding klasy z tablicy elementów powiązania z określoną nazwą i przestrzenią nazw.Initializes a new instance of the CustomBinding class from an array of binding elements with a specified name and namespace.

Właściwości

CloseTimeout

Pobiera lub ustawia przedział czasu, który ma zostać zamknięty, zanim transport zgłosi wyjątek.Gets or sets the interval of time provided for a connection to close before the transport raises an exception.

(Odziedziczone po Binding)
Elements

Pobiera elementy powiązania z niestandardowego powiązania.Gets the binding elements from the custom binding.

MessageVersion

Pobiera wersję wiadomości używaną przez klientów i usługi skonfigurowane przy użyciu powiązania.Gets the message version used by clients and services configured with the binding.

(Odziedziczone po Binding)
Name

Pobiera lub ustawia nazwę powiązania.Gets or sets the name of the binding.

(Odziedziczone po Binding)
Namespace

Pobiera lub ustawia przestrzeń nazw XML powiązania.Gets or sets the XML namespace of the binding.

(Odziedziczone po Binding)
OpenTimeout

Pobiera lub ustawia przedział czasu, który ma być otwarty, zanim transport zgłosi wyjątek.Gets or sets the interval of time provided for a connection to open before the transport raises an exception.

(Odziedziczone po Binding)
ReceiveTimeout

Pobiera lub ustawia przedział czasu, przez jaki połączenie może pozostawać nieaktywne, podczas którego nie są odbierane żadne komunikaty aplikacji przed porzuceniem.Gets or sets the interval of time that a connection can remain inactive, during which no application messages are received, before it is dropped.

(Odziedziczone po Binding)
Scheme

Pobiera schemat identyfikatora URI dla transportu używanego przez niestandardowe powiązanie.Gets the URI scheme for transport used by the custom binding.

SendTimeout

Pobiera lub ustawia przedział czasu przewidziany na zakończenie operacji zapisu przed wykroczeniem przez transport wyjątku.Gets or sets the interval of time provided for a write operation to complete before the transport raises an exception.

(Odziedziczone po Binding)

Metody

BuildChannelFactory<TChannel>(BindingParameterCollection)

Kompiluje stos fabryki kanałów na kliencie, który tworzy określony typ kanału, który spełnia funkcje określone przez kolekcję parametrów powiązań.Builds the channel factory stack on the client that creates a specified type of channel and that satisfies the features specified by a collection of binding parameters.

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

Kompiluje stos fabryki kanałów na kliencie, który tworzy określony typ kanału, który spełnia funkcje określone przez tablicę obiektów.Builds the channel factory stack on the client that creates a specified type of channel and that satisfies the features specified by an object array.

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

Kompiluje 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ązań.Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified by a collection of binding parameters.

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

Kompiluje odbiornik kanału w usłudze, który akceptuje określony typ kanału i spełnia określone funkcje.Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

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

Kompiluje odbiornik kanału w usłudze, który akceptuje określony typ kanału i spełnia określone funkcje.Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

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

Kompiluje odbiornik kanału w usłudze, który akceptuje określony typ kanału i spełnia określone funkcje.Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

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

Kompiluje odbiornik kanału w usłudze, który akceptuje określony typ kanału i spełnia określone funkcje.Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

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

Kompiluje odbiornik kanału w usłudze, który akceptuje określony typ kanału i spełnia określone funkcje.Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

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

Kompiluje odbiornik kanału w usłudze, który akceptuje określony typ kanału i spełnia określone funkcje.Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

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

Kompiluje odbiornik kanału w usłudze, który akceptuje określony typ kanału i spełnia określone funkcje.Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

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

Zwraca wartość wskazującą, czy bieżące powiązanie może utworzyć stos fabryki kanałów na kliencie, który spełnia wymagania kolekcji określonych parametrów powiązania.Returns a value that indicates whether the current binding can build a channel factory stack on the client that satisfies the collection of binding parameters specified.

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

Zwraca wartość wskazującą, czy bieżące powiązanie może skompilować stos fabryki kanałów na kliencie, który spełnia wymagania określone przez tablicę obiektów.Returns a value that indicates whether the current binding can build a channel factory stack on the client that satisfies the requirements specified by an object array.

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

Zwraca wartość wskazującą, czy bieżące powiązanie może kompilować stos odbiornika kanałów w usłudze, która spełnia kryteria kolekcji określonych parametrów powiązania.Returns a value that indicates whether the current binding can build a channel listener stack on the service that satisfies the collection of binding parameters specified.

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

Zwraca wartość wskazującą, czy bieżące powiązanie może kompilować stos odbiornika kanałów w usłudze, która spełnia kryteria określone w tablicy obiektów.Returns a value that indicates whether the current binding can build a channel listener stack on the service that satisfies the criteria specified in an array of objects.

(Odziedziczone po Binding)
CreateBindingElements()

Zwraca ogólną kolekcję elementów powiązania z niestandardowego powiązania.Returns a generic collection of the binding elements from the custom binding.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

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

Zwraca żądany obiekt typu, jeśli jest obecny, z odpowiedniej warstwy w stosie powiązań.Returns a typed object requested, if present, from the appropriate layer in the binding stack.

(Odziedziczone po Binding)
GetType()

Pobiera Type bieżące wystąpienie.Gets the Type of the current instance.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy skróconą kopię bieżącego elementu Object .Creates a shallow copy of the current Object.

(Odziedziczone po Object)
ShouldSerializeName()

Zwraca czy nazwa powiązania powinna być serializowana.Returns whether the name of the binding should be serialized.

(Odziedziczone po Binding)
ShouldSerializeNamespace()

Zwraca czy przestrzeń nazw powiązania powinna być serializowana.Returns whether the namespace of the binding should be serialized.

(Odziedziczone po Binding)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.Returns a string that represents the current object.

(Odziedziczone po Object)

Dotyczy