Binding Sınıf

Tanım

İstemciler ve hizmetler arasındaki iletişim için kullanılan protokolleri, aktarımları ve ileti kodlayıcılarını belirten bağlama öğelerini içerir.

public ref class Binding abstract : System::ServiceModel::IDefaultCommunicationTimeouts
public abstract class Binding : System.ServiceModel.IDefaultCommunicationTimeouts
type Binding = class
    interface IDefaultCommunicationTimeouts
Public MustInherit Class Binding
Implements IDefaultCommunicationTimeouts
Devralma
Binding
Türetilmiş
Uygulamalar

Örnekler

BasicHttpBinding binding = new BasicHttpBinding();

binding.Name = "binding1";

Uri baseAddress = new Uri("http://localhost:8000/servicemodelsamples/service");
Uri address = new Uri("http://localhost:8000/servicemodelsamples/service/calc");

// Create a ServiceHost for the CalculatorService type and provide the base address.
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress))
{
    serviceHost.AddServiceEndpoint(typeof(ICalculator), binding, address);

    // 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();
}

Açıklamalar

Her biri bir uç noktanın diğer uç noktalarla nasıl iletişim kurduğunu açıklayan ve istemcideki bir kanal fabrikasında ve hizmetteki bir kanal dinleyicisinde oluşturulan, tutarlı bir şekilde oluşturulan bağlama öğeleri koleksiyonunu temsil eder. Bağlama, protokol kanallarına, aktarım kanallarına ve ileti kodlayıcılarına karşılık gelen bağlama öğeleri koleksiyonu içerir. Protokol kanalları için herhangi bir sayıda bağlama öğesi olabilir, ancak her aktarım ve ileti kodlayıcısı için bir ve yalnızca bir bağlama öğesi olabilir. Bir bağlamada genellikle altı bağlama öğesi katmanı vardır. Yalnızca yığının en altındaki aktarım ve kodlama bağlama öğeleri gereklidir. Her bağlama için kodlama gerektiğinden, bir kodlama belirtilmezse Windows Communication Foundation (WCF) sizin için varsayılan bir kodlama ekler. Varsayılan değer HTTP ve HTTPS aktarımları için Text/XML ve diğer aktarımlar için İkili'dir.

Aşağıdaki tabloda her katman için seçenekler özetlenmiştir.

Katman Seçenekler Gerekli
İşlem Flow TransactionFlowBindingElement No
Güvenilirlik ReliableSessionBindingElement No
Güvenlik Simetrik, Asimetrik, Transport-Level No
Şekil Değişikliği CompositeDuplexBindingElement No
Taşıma Yükseltmeleri SSL akışı, Windows akışı, Eş Çözümleyici No
Encoding Metin, İkili, MTOM, Özel Yes
Aktarım TCP, Adlandırılmış Kanallar, HTTP, HTTPS, MSMQ, Özel Yes

Her bağlama öğesi, istemcide bir kanal fabrikası ve hizmette bir kanal dinleyicisi oluşturmak için belirtim sağlar. Örneğin kanal fabrikası yığını oluşturulduğunda, bağlamadaki her bağlama öğesi için yığında bir kanal fabrikası vardır. Aynı eşleme türü, hizmetteki yığındaki kanal dinleyicileri için de geçerlidir. İstemci ve hizmette tutarlılık, bu uç noktalar arasında kanal tabanlı bağlantı kurmak için kritik öneme sahiptir. Her fabrika ve dinleyici de buna karşılık gelen kanalları bağlayan kanal yığınında gönderme ve kabul etme işlemlerini işler ve bu kanallar daha sonra iletişim kurmak için kullanılan iletileri gönderip alabilir.

Her bir Binding örneğinin, birlikte hizmetin meta verilerinde benzersiz olarak tanımlayan bir Name ve Namespace örneği vardır. Ad veya ad alanı belirtilmezse, WCF sizin için varsayılan değerleri ekler. Varsayılan ad alanı ve null varsayılan ad alanı şeklindedir http://tempuri.org/. Bağlamanın bu kullanıcı adı, özelliği tarafından Scheme belirtilen protokol adının belirtiminden farklıdır. Örneğin, daha fazla HTTP bağlaması eklemek istiyorsanız, bunları istediğiniz şekilde adlandırabilir ve tüm düzenlerini "http" olarak ayarlayabilirsiniz. öğesini temel alan yerleşik bir uygulama veya makine gönderimi Schemeyoktur. Bu nedenle, iyi bilinen protokoller için ek işleyicileri kaydedememe sorununu ortadan kaldırabilirsiniz. Ayrıca, her sürüme farklı bir ad vererek bağlamanın birden çok sürümüyle kolayca yan yana çalışabilirsiniz.

sınıfı, Binding uzun süreler IDefaultCommunicationTimeouts için kaynakları bağlamaya dayanan Hizmet Reddi (DOS) saldırılarını azaltmak için arabirimini uygular. Uygulama, bağlantıları açma ve kapatma ile iletileri alma ve gönderme ile ilişkili okuma ve yazma işlemleri için iletişim zaman aşımları değerlerini belirtir. Bu zaman aşımlarını almak ve ayarlamak için kullanılan özellikler ve bunların varsayılan değer işlemleri aşağıdaki tabloda özetlenir.

Zaman Aşımı Özelliği Varsayılan değer
OpenTimeout 1 dakika
CloseTimeout 1 dakika
SendTimeout 1 dakika
ReceiveTimeout 10 dakika

'den Bindingdevralarak bir bağlama oluşturduğunuzda, öğesini geçersiz kılmanız CreateBindingElementsgerekir.

Ayrıca, kendi bağlama öğelerinizi tanımlayabilir ve bunları önceki tabloda tanımlanan katmanlardan herhangi birinin arasına ekleyebilirsiniz. Daha fazla bilgi için sınıfına CustomBinding bakın.

Oluşturucular

Binding()

Sınıfın Binding yeni bir örneğini varsayılan ad alanı ve ad alanıyla başlatır.

Binding(String, String)

Hizmetin belirtilen bağlamasından sınıfının yeni bir örneğini Binding başlatır.

Özellikler

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.

MessageVersion

Bağlama ile yapılandırılan istemciler ve hizmetler tarafından kullanılan ileti sürümünü alır.

Name

Bağlamanın adını alır veya ayarlar.

Namespace

Bağlamanın XML ad alanını alır veya ayarlar.

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.

ReceiveTimeout

Bağlantının devre dışı bırakılmadan önce hiçbir uygulama iletisinin alınmadığı devre dışı kalabileceği süreyi alır veya ayarlar.

Scheme

Türetilmiş bir sınıfta uygulandığında, bağlamalar tarafından oluşturulan kanal ve dinleyici fabrikaları tarafından kullanılan aktarımı belirten URI şemasını ayarlar.

SendTimeout

Aktarım özel durum oluşturmadan önce yazma işleminin tamamlanması için sağlanan zaman aralığını alır veya ayarlar.

Yöntemler

BuildChannelFactory<TChannel>(BindingParameterCollection)

Belirtilen kanal türünü oluşturan ve bağlama parametreleri koleksiyonu tarafından belirtilen özellikleri karşılayan istemci üzerinde kanal fabrikası yığınını oluşturur.

BuildChannelFactory<TChannel>(Object[])

Belirtilen kanal türünü oluşturan ve bir nesne dizisi tarafından belirtilen özellikleri karşılayan istemci üzerinde kanal fabrikası yığınını oluşturur.

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.

BuildChannelListener<TChannel>(Object[])

Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur.

BuildChannelListener<TChannel>(Uri, BindingParameterCollection)

Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur.

BuildChannelListener<TChannel>(Uri, Object[])

Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur.

BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection)

Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur.

BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection)

Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur.

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

Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur.

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

Belirtilen kanal türünü kabul eden ve belirtilen özellikleri karşılayan hizmette kanal dinleyicisini oluşturur.

CanBuildChannelFactory<TChannel>(BindingParameterCollection)

Geçerli bağlamanın istemcide belirtilen bağlama parametrelerinin koleksiyonunu karşılayan bir kanal fabrika yığını oluşturup oluşturamayacağını belirten bir değer döndürür.

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.

CanBuildChannelListener<TChannel>(BindingParameterCollection)

Geçerli bağlamanın hizmette belirtilen bağlama parametreleri koleksiyonunu karşılayan bir kanal dinleyici yığını oluşturup oluşturamayacağını belirten bir değer döndürür.

CanBuildChannelListener<TChannel>(Object[])

Geçerli bağlamanın hizmette bir nesne dizisinde belirtilen ölçütleri karşılayan bir kanal dinleyici yığını oluşturup oluşturamayacağını belirten bir değer döndürür.

CreateBindingElements()

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli bağlamanın parçası olan bağlama öğelerini içeren bir koleksiyon oluşturur.

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)

Varsa, bağlama yığınındaki uygun katmandan istenen türlenmiş bir nesne döndürür.

GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ShouldSerializeName()

Bağlama adının seri hale getirilip getirilmeyeceğini döndürür.

ShouldSerializeNamespace()

Bağlamanın ad alanının seri hale getirilip getirilmeyeceğini döndürür.

ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır