CustomBinding 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í.
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
- 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í:
Nahoře je nepovinný, TransactionFlowBindingElement který umožňuje tok transakcí.
Dále je volitelný ReliableSessionBindingElement , který poskytuje mechanismus relace a řazení definovaný ve specifikaci WS-ReliableMessaging. Tento pojem relace může překračovat zprostředkovatele SOAP a dopravy.
Dále je volitelný prvek vazby zabezpečení, který poskytuje funkce zabezpečení, jako je autorizace, ověřování, ochrana a důvěrnost. Windows Communication Foundation (WCF) poskytuje následující prvky vazby zabezpečení:
Dále jsou volitelné vzory zpráv určené prvky vazby:
Dále jsou volitelné upgrady přenosu / pomocné prvky vazby:
Dále je povinný prvek vázání kódování zpráv. Můžete použít vlastní přenos nebo použít jednu z následujících vazeb kódování zpráv:
V dolní části je povinný transportní prvek. Můžete použít vlastní přenos nebo použít jeden z elementů přenosové vazby poskytované službou Windows Communication Foundation (WCF):
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) |