CustomBinding Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bağlama öğeleri listesinden bağlama tanımlar.
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
- Devralma
- Öznitelikler
Örnekler
Aşağıdaki örnekte ve kullanarak ReliableSessionBindingElement bir CustomBinding nesnesinin nasıl oluşturulacağı gösterilmektedirHttpTransportBindingElement
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
Açıklamalar
Sistem tarafından sağlanan bağlamalardan biri hizmetinizin gereksinimlerini karşılamadığında özel bağlama kullanın. Özel bağlama, örneğin bir hizmet uç noktasında yeni bir aktarım veya yeni kodlayıcı kullanımını etkinleştirmek için kullanılabilir.
Özel bağlama, belirli bir sırada "yığılmış" bağlama öğeleri koleksiyonundan biri CustomBinding kullanılarak oluşturulur:
En üstte, akış işlemlerine izin veren isteğe bağlı TransactionFlowBindingElement bir seçenek bulunur.
Sonraki, WS-ReliableMessaging belirtiminde tanımlandığı gibi bir oturum ve sıralama mekanizması sağlayan isteğe bağlı ReliableSessionBindingElement bir seçenektir. Bir oturumun bu ifadesi SOAP ve aktarım aracıları arasında geçiş yapabilir.
Sonraki, yetkilendirme, kimlik doğrulaması, koruma ve gizlilik gibi güvenlik özellikleri sağlayan isteğe bağlı bir güvenlik bağlama öğesidir. Aşağıdaki güvenlik bağlama öğeleri Windows Communication Foundation (WCF) tarafından sağlanır:
Sonraki, bağlama öğeleri tarafından belirtilen isteğe bağlı ileti desenleridir:
Sonraki adım isteğe bağlı aktarım yükseltmeleri/yardımcıları bağlama öğeleridir:
Sonraki, gerekli bir ileti kodlama bağlama öğesidir. Kendi aktarımınızı kullanabilir veya aşağıdaki ileti kodlama bağlamalarından birini kullanabilirsiniz:
Alt kısımda gerekli bir taşıma öğesi bulunur. Kendi taşımanızı kullanabilir veya Windows Communication Foundation (WCF) tarafından sağlanan aktarım bağlama öğelerinden birini kullanabilirsiniz:
Aşağıdaki tabloda her katman için seçenekler özetlenmiştir.
| Katman | Options | Gerekli |
|---|---|---|
| İşlem Akışı | TransactionFlowBindingElement | Hayır |
| Reliability | ReliableSessionBindingElement | Hayır |
| Security | Simetrik, Asimetrik, Transport-Level | Hayır |
| Şekil Değişikliği | CompositeDuplexBindingElement | Hayır |
| Aktarım Yükseltmeleri | SSL akışı, Windows akışı, Eş Çözümleyici | Hayır |
| Encoding | Metin, İkili, MTOM, Özel | Evet |
| Transport | TCP, Adlandırılmış Kanallar, HTTP, HTTPS, MSMQ'nun çeşitleri, Özel | Evet |
Ayrıca, kendi bağlama öğelerinizi tanımlayabilir ve bunları önceki tanımlı katmanlardan herhangi biri arasına ekleyebilirsiniz.
Sistem tarafından sağlanan bağlamayı değiştirmek için özel bağlama kullanma hakkında bir tartışma için bkz . Nasıl yapılır: System-Provided Bağlamasını Özelleştirme.
Note
.NET Framework 3.5 veya önceki sürümleriyle oluşturulmuş bir WCF istemci uygulamasından .NET Framework 4.0 veya üzeri ile oluşturulmuş bir WCF hizmetini çağırırken, svcutil.exe tarafından oluşturulan veya Visual Studio hizmet başvurusu ekleyen yapılandırma dosyası bağlama yapılandırmasında geçerlilik özniteliğini içerir. Bu öznitelik .NET Framework 3.5 çalışma zamanı tarafından tanınmaz ve uygulama "Tanınmayan öznitelik geçerliliği" iletisiyle bir ConfigurationErrorsException oluşturur. Bu soruna geçici bir çözüm olarak bağlama yapılandırmasından geçerlilik özniteliğini kaldırın.
Oluşturucular
| Name | Description |
|---|---|
| CustomBinding() |
CustomBinding sınıfının yeni bir örneğini başlatır. |
| CustomBinding(Binding) |
Belirtilen bağlamanın CustomBinding değerlerinden sınıfının yeni bir örneğini başlatır. |
| CustomBinding(BindingElement[]) |
Bağlama öğeleri dizisinden sınıfının yeni bir örneğini CustomBinding başlatır. |
| CustomBinding(IEnumerable<BindingElement>) |
Tam bir kanal yığınından CustomBinding bağlama öğeleriyle sınıfının yeni bir örneğini başlatır. |
| CustomBinding(String, String, BindingElement[]) |
Sınıfın CustomBinding yeni bir örneğini belirtilen ad ve ad alanına sahip bağlama öğeleri dizisinden başlatır. |
| CustomBinding(String) |
CustomBinding sınıfının yeni bir örneğini başlatır. |
Özellikler
| Name | Description |
|---|---|
| CloseTimeout |
Aktarım özel durum oluşturmadan önce bağlantının kapatılması için sağlanan zaman aralığını alır veya ayarlar. (Devralındığı yer: Binding) |
| Elements |
Özel bağlamadan bağlama öğelerini alır. |
| MessageVersion |
bağlamasıyla yapılandırılan istemciler ve hizmetler tarafından kullanılan ileti sürümünü alır. (Devralındığı yer: Binding) |
| Name |
Bağlamanın adını alır veya ayarlar. (Devralındığı yer: Binding) |
| Namespace |
Bağlamanın XML ad alanını alır veya ayarlar. (Devralındığı yer: Binding) |
| OpenTimeout |
Aktarım özel durum oluşturmadan önce bağlantının açılması için sağlanan zaman aralığını alır veya ayarlar. (Devralındığı yer: Binding) |
| ReceiveTimeout |
Bağlantının devre dışı bırakılmadan önce hiçbir uygulama iletisinin alınmadığı zaman aralığını alır veya ayarlar. (Devralındığı yer: Binding) |
| Scheme |
Özel bağlama tarafından kullanılan aktarım için URI düzenini alır. |
| SendTimeout |
Aktarım özel durum oluşturmadan önce yazma işleminin tamamlanması için sağlanan zaman aralığını alır veya ayarlar. (Devralındığı yer: Binding) |
Yöntemler
| Name | Description |
|---|---|
| BuildChannelFactory<TChannel>(BindingParameterCollection) |
İstemcide, belirtilen bir kanal türü oluşturan ve bağlama parametreleri koleksiyonu tarafından belirtilen özellikleri karşılayan kanal fabrika yığınını oluşturur. (Devralındığı yer: Binding) |
| BuildChannelFactory<TChannel>(Object[]) |
Belirtilen kanal türünü oluşturan ve bir nesne dizisi tarafından belirtilen özellikleri karşılayan istemcide kanal fabrika yığınını oluşturur. (Devralındığı yer: Binding) |
| BuildChannelListener<TChannel>(BindingParameterCollection) |
Belirtilen kanal türünü kabul eden ve bağlama parametreleri koleksiyonu tarafından belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur. (Devralındığı yer: Binding) |
| BuildChannelListener<TChannel>(Object[]) |
Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur. (Devralındığı yer: Binding) |
| BuildChannelListener<TChannel>(Uri, BindingParameterCollection) |
Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur. (Devralındığı yer: Binding) |
| BuildChannelListener<TChannel>(Uri, Object[]) |
Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur. (Devralındığı yer: Binding) |
| BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection) |
Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur. (Devralındığı yer: Binding) |
| BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection) |
Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur. (Devralındığı yer: Binding) |
| BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[]) |
Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur. (Devralındığı yer: Binding) |
| BuildChannelListener<TChannel>(Uri, String, Object[]) |
Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur. (Devralındığı yer: Binding) |
| CanBuildChannelFactory<TChannel>(BindingParameterCollection) |
Geçerli bağlamanın istemcide belirtilen bağlama parametreleri koleksiyonunu karşılayan bir kanal fabrika yığını oluşturup oluşturamayacağını gösteren bir değer döndürür. (Devralındığı yer: Binding) |
| CanBuildChannelFactory<TChannel>(Object[]) |
Geçerli bağlamanın istemcide bir nesne dizisi tarafından belirtilen gereksinimleri karşılayan bir kanal fabrika yığını oluşturup oluşturamayacağını gösteren bir değer döndürür. (Devralındığı yer: Binding) |
| CanBuildChannelListener<TChannel>(BindingParameterCollection) |
Geçerli bağlamanın, belirtilen bağlama parametrelerinin koleksiyonunu karşılayan hizmette kanal dinleyicisi yığını oluşturup oluşturamayacağını gösteren bir değer döndürür. (Devralındığı yer: Binding) |
| CanBuildChannelListener<TChannel>(Object[]) |
Geçerli bağlamanın bir nesne dizisinde belirtilen ölçütleri karşılayan hizmette kanal dinleyicisi yığını oluşturup oluşturamayacağını gösteren bir değer döndürür. (Devralındığı yer: Binding) |
| CreateBindingElements() |
Özel bağlamadan bağlama öğelerinin genel bir koleksiyonunu döndürür. |
| Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
| GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
| GetProperty<T>(BindingParameterCollection) |
Bağlama yığınındaki uygun katmandan istenen, varsa, yazılan bir nesne döndürür. (Devralındığı yer: Binding) |
| GetType() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
| MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
| ShouldSerializeName() |
Bağlama adının seri hale getirilip getirilmeyeceğini döndürür. (Devralındığı yer: Binding) |
| ShouldSerializeNamespace() |
Bağlamanın ad alanının serileştirilip serileştirilmeyeceğini döndürür. (Devralındığı yer: Binding) |
| ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |