CustomBinding Sınıf

Tanım

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
CustomBinding
Öznitelikler

Örnekler

Aşağıdaki örnekte ve kullanarak ReliableSessionBindingElement bir CustomBinding nesnenin 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. Örneğin, bir hizmet uç noktasında yeni bir aktarım veya yeni bir kodlayıcı kullanımını etkinleştirmek için özel bir bağlama kullanılabilir.

Özel bağlama, belirli bir sırada "yığılmış" bağlama öğeleri koleksiyonundan biri CustomBinding kullanılarak oluşturulur:

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

Katman Seçenekler Gerekli
İşlem Akışı TransactionFlowBindingElement Hayır
Güvenilirlik ReliableSessionBindingElement Hayır
Güvenlik 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
Aktarım TCP, Adlandırılmış Kanallar, HTTP, HTTPS, MSMQ'nun türleri, Özel Evet

Ayrıca, kendi bağlama öğelerinizi tanımlayabilir ve bunları önceki tanımlı katmanlardan herhangi birinin 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.

Not

.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'dan bir 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

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)

CustomBinding sınıfının yeni bir örneğini başlatır.

CustomBinding(String, String, BindingElement[])

Belirtilen ad ve ad alanına sahip bağlama öğeleri dizisinden sınıfının yeni bir örneğini CustomBinding 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.

(Devralındığı yer: Binding)
Elements

Özel bağlamadan bağlama öğelerini alır.

MessageVersion

Bağlama ile 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ığı devre dışı kalabileceği süreyi 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

BuildChannelFactory<TChannel>(BindingParameterCollection)

İstemcide belirtilen kanal türünü 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 parametrelerinin koleksiyonunu karşılayan bir kanal fabrika yığını oluşturup oluşturamayacağını belirten 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 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.

(Devralındığı yer: Binding)
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.

(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)

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

(Devralındığı yer: Binding)
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.

(Devralındığı yer: Binding)
ShouldSerializeNamespace()

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

(Devralındığı yer: Binding)
ToString()

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

(Devralındığı yer: Object)

Şunlara uygulanır