DuplexClientBase<TChannel> 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.
Çift yönlü bir hizmete kanal oluşturmak ve bu kanalı bir geri çağırma nesnesiyle ilişkilendirmek için kullanılır.
generic <typename TChannel>
where TChannel : classpublic ref class DuplexClientBase abstract : System::ServiceModel::ClientBase<TChannel>
public abstract class DuplexClientBase<TChannel> : System.ServiceModel.ClientBase<TChannel> where TChannel : class
type DuplexClientBase<'Channel (requires 'Channel : null)> = class
inherit ClientBase<'Channel (requires 'Channel : null)>
Public MustInherit Class DuplexClientBase(Of TChannel)
Inherits ClientBase(Of TChannel)
Tür Parametreleri
- TChannel
Oluşturulacak kanalın türü.
- Devralma
Örnekler
Aşağıdaki örnekte, geri çağırmaları dinlemek üzere geri çağırma nesnesiyle yeni bir System.ServiceModel.InstanceContext nesnesi geçirmek için çift yönlü WCF istemci türü olan SampleDuplexHelloClient
istemcisindeki kullanımı gösterilmektedir.
using System;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.Threading;
namespace Microsoft.WCF.Documentation
{
[CallbackBehaviorAttribute(
IncludeExceptionDetailInFaults= true,
UseSynchronizationContext=true,
ValidateMustUnderstand=true
)]
public class Client : SampleDuplexHelloCallback
{
AutoResetEvent waitHandle;
public Client()
{
waitHandle = new AutoResetEvent(false);
}
public void Run()
{
// Picks up configuration from the configuration file.
SampleDuplexHelloClient wcfClient
= new SampleDuplexHelloClient(new InstanceContext(this), "WSDualHttpBinding_SampleDuplexHello");
try
{
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("Enter a greeting to send and press ENTER: ");
Console.Write(">>> ");
Console.ForegroundColor = ConsoleColor.Green;
string greeting = Console.ReadLine();
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("Called service with: \r\n\t" + greeting);
wcfClient.Hello(greeting);
Console.WriteLine("Execution passes service call and moves to the WaitHandle.");
this.waitHandle.WaitOne();
Console.ForegroundColor = ConsoleColor.Blue;
Console.WriteLine("Set was called.");
Console.Write("Press ");
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("ENTER");
Console.ForegroundColor = ConsoleColor.Blue;
Console.Write(" to exit...");
Console.ReadLine();
}
catch (TimeoutException timeProblem)
{
Console.WriteLine("The service operation timed out. " + timeProblem.Message);
Console.ReadLine();
}
catch (CommunicationException commProblem)
{
Console.WriteLine("There was a communication problem. " + commProblem.Message);
Console.ReadLine();
}
}
public static void Main()
{
Client client = new Client();
client.Run();
}
public void Reply(string response)
{
Console.WriteLine("Received output.");
Console.WriteLine("\r\n\t" + response);
this.waitHandle.Set();
}
}
}
Imports System.ServiceModel
Imports System.ServiceModel.Channels
Imports System.Threading
Namespace Microsoft.WCF.Documentation
<CallbackBehaviorAttribute(IncludeExceptionDetailInFaults:= True, UseSynchronizationContext:=True, ValidateMustUnderstand:=True)> _
Public Class Client
Implements SampleDuplexHelloCallback
Private waitHandle As AutoResetEvent
Public Sub New()
waitHandle = New AutoResetEvent(False)
End Sub
Public Sub Run()
' Picks up configuration from the configuration file.
Dim wcfClient As New SampleDuplexHelloClient(New InstanceContext(Me), "WSDualHttpBinding_SampleDuplexHello")
Try
Console.ForegroundColor = ConsoleColor.White
Console.WriteLine("Enter a greeting to send and press ENTER: ")
Console.Write(">>> ")
Console.ForegroundColor = ConsoleColor.Green
Dim greeting As String = Console.ReadLine()
Console.ForegroundColor = ConsoleColor.White
Console.WriteLine("Called service with: " & Constants.vbCrLf & Constants.vbTab & greeting)
wcfClient.Hello(greeting)
Console.WriteLine("Execution passes service call and moves to the WaitHandle.")
Me.waitHandle.WaitOne()
Console.ForegroundColor = ConsoleColor.Blue
Console.WriteLine("Set was called.")
Console.Write("Press ")
Console.ForegroundColor = ConsoleColor.Red
Console.Write("ENTER")
Console.ForegroundColor = ConsoleColor.Blue
Console.Write(" to exit...")
Console.ReadLine()
Catch timeProblem As TimeoutException
Console.WriteLine("The service operation timed out. " & timeProblem.Message)
Console.ReadLine()
Catch commProblem As CommunicationException
Console.WriteLine("There was a communication problem. " & commProblem.Message)
Console.ReadLine()
End Try
End Sub
Public Shared Sub Main()
Dim client As New Client()
client.Run()
End Sub
Public Sub Reply(ByVal response As String) Implements SampleDuplexHelloCallback.Reply
Console.WriteLine("Received output.")
Console.WriteLine(Constants.vbCrLf & Constants.vbTab & response)
Me.waitHandle.Set()
End Sub
End Class
End Namespace
Açıklamalar
geri çağırma nesnesini belirten bir hizmete kanal oluşturmak için DuplexClientBase<TChannel> sınıfını kullanın. DuplexClientBase<TChannel> nesnesi, WCF nesnesi için bağlantı sağlayan bir System.ServiceModel.DuplexChannelFactory<TChannel> nesnesi sarmalar. Çift yönlü hizmete bağlanmak için iki türden birini kullanabilirsiniz. Çift yönlü hizmetler hakkında daha fazla bilgi için bkz. Çift Yönlü Hizmetler.
Bu sınıftan türetilen Yönetilen C++ kullanıcıları için özel not:
Temizleme kodunuzu bir yıkıcıya değil (On)(Begin)Close (ve/veya OnAbort) içine yerleştirin.
Yıkıcılardan kaçının: derleyicinin otomatik olarak IDisposable oluşturmasına neden olurlar
Başvuru olmayan üyelerden kaçının: Derleyicinin otomatik olarak IDisposable oluşturmasına neden olabilirler
Sonlandırıcılardan kaçının; ancak bir tane eklerseniz, otomatik olarak oluşturulan IDisposable davranışına öykünmek için derleme uyarısını gizlemeniz ve SuppressFinalize(Object) ve sonlandırıcının kendisini (On)(Begin)Close (ve/veya OnAbort) öğesinden çağırmanız gerekir.
Oluşturucular
DuplexClientBase<TChannel>(InstanceContext) |
Belirtilen geri çağırma nesnesini kullanarak DuplexClientBase<TChannel> sınıfının yeni bir örneğini başlatır. |
DuplexClientBase<TChannel>(InstanceContext, Binding, EndpointAddress) |
Belirtilen geri çağırma nesnesi, bağlama ve hizmet uç noktası adresini kullanarak DuplexClientBase<TChannel> sınıfının yeni bir örneğini başlatır. |
DuplexClientBase<TChannel>(InstanceContext, ServiceEndpoint) |
Belirtilen geri çağırma nesnesi ve hizmet uç noktası ile DuplexClientBase<TChannel> sınıfının yeni bir örneğini başlatır. |
DuplexClientBase<TChannel>(InstanceContext, String) |
Belirtilen geri çağırma nesnesini ve yapılandırma adını kullanarak DuplexClientBase<TChannel> sınıfının yeni bir örneğini başlatır. |
DuplexClientBase<TChannel>(InstanceContext, String, EndpointAddress) |
Belirtilen geri çağırma nesnesini, yapılandırma adını ve hizmet uç noktası adresini kullanarak DuplexClientBase<TChannel> sınıfının yeni bir örneğini başlatır. |
DuplexClientBase<TChannel>(InstanceContext, String, String) |
Belirtilen geri çağırma nesnesini, yapılandırma adını ve hizmet uç noktası adresini kullanarak DuplexClientBase<TChannel> sınıfının yeni bir örneğini başlatır. |
DuplexClientBase<TChannel>(Object) |
Belirtilen geri çağırma nesnesini kullanarak DuplexClientBase<TChannel> sınıfının yeni bir örneğini başlatır. |
DuplexClientBase<TChannel>(Object, Binding, EndpointAddress) |
Belirtilen geri çağırma nesnesi, bağlama ve hizmet uç noktası adresini kullanarak DuplexClientBase<TChannel> sınıfının yeni bir örneğini başlatır. |
DuplexClientBase<TChannel>(Object, ServiceEndpoint) |
Belirtilen geri çağırma nesnesi ve hizmet uç noktası ile DuplexClientBase<TChannel> sınıfının yeni bir örneğini başlatır. |
DuplexClientBase<TChannel>(Object, String) |
Belirtilen geri çağırma nesnesini ve yapılandırma adını kullanarak DuplexClientBase<TChannel> sınıfının yeni bir örneğini başlatır. |
DuplexClientBase<TChannel>(Object, String, EndpointAddress) |
Belirtilen geri çağırma nesnesini, yapılandırma adını ve hizmet uç noktası adresini kullanarak DuplexClientBase<TChannel> sınıfının yeni bir örneğini başlatır. |
DuplexClientBase<TChannel>(Object, String, String) |
Belirtilen geri çağırma nesnesini, uç nokta yapılandırma adını ve hizmet uç noktası adresini kullanarak DuplexClientBase<TChannel> sınıfının yeni bir örneğini başlatır. |
Özellikler
Channel |
Çeşitli yapılandırılmış hizmet uç noktalarına ileti göndermek için kullanılan iç kanalı alır. (Devralındığı yer: ClientBase<TChannel>) |
ChannelFactory |
Temel alınan ChannelFactory<TChannel> nesnesini alır. (Devralındığı yer: ClientBase<TChannel>) |
ClientCredentials |
bir işlemi çağırmak için kullanılan istemci kimlik bilgilerini alır. (Devralındığı yer: ClientBase<TChannel>) |
Endpoint |
WCF istemcisinin bağlanabileceği hizmetin hedef uç noktasını alır. (Devralındığı yer: ClientBase<TChannel>) |
InnerChannel |
Temel alınan IClientChannel uygulamasını alır. (Devralındığı yer: ClientBase<TChannel>) |
InnerDuplexChannel |
Çift yönlü kanal için temel IClientChannel uygulamasını alır. |
State |
ClientBase<TChannel> nesnesinin geçerli durumunu alır. (Devralındığı yer: ClientBase<TChannel>) |
Yöntemler
Abort() |
ClientBase<TChannel> nesnesinin geçerli durumundan kapalı duruma hemen geçmesine neden olur. (Devralındığı yer: ClientBase<TChannel>) |
Close() |
ClientBase<TChannel> nesnesinin geçerli durumundan kapalı duruma geçmesine neden olur. (Devralındığı yer: ClientBase<TChannel>) |
CloseAsync() |
Çift yönlü bir hizmete kanal oluşturmak ve bu kanalı bir geri çağırma nesnesiyle ilişkilendirmek için kullanılır. (Devralındığı yer: ClientBase<TChannel>) |
CreateChannel() |
Oluşturucuya geçirilen geri çağırma nesnesiyle ilişkili hizmete bir kanal döndürür. |
CreateChannel() |
Hizmete yeni bir kanal döndürür. (Devralındığı yer: ClientBase<TChannel>) |
DisplayInitializationUI() |
İç kanala, kanalı kullanmadan önce başlatmak için gerekliyse bir kullanıcı arabirimi görüntülemesini bildirir. (Devralındığı yer: ClientBase<TChannel>) |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetDefaultValueForInitialization<T>() |
C# dilinde varsayılan anahtar sözcüğün davranışını çoğaltır. (Devralındığı yer: ClientBase<TChannel>) |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetType() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
InvokeAsync(ClientBase<TChannel>.BeginOperationDelegate, Object[], ClientBase<TChannel>.EndOperationDelegate, SendOrPostCallback, Object) |
Olay tabanlı zaman uyumsuz deseni uygulamak için destek sağlar. Bu düzen hakkında daha fazla bilgi için bkz. Olay Tabanlı Zaman Uyumsuz Desene Genel Bakış. (Devralındığı yer: ClientBase<TChannel>) |
MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
Open() |
ClientBase<TChannel> nesnesinin oluşturulan durumdan açık duruma geçmesine neden olur. (Devralındığı yer: ClientBase<TChannel>) |
ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |
Belirtik Arabirim Kullanımları
IAsyncDisposable.DisposeAsync() |
Çift yönlü bir hizmete kanal oluşturmak ve bu kanalı bir geri çağırma nesnesiyle ilişkilendirmek için kullanılır. (Devralındığı yer: ClientBase<TChannel>) |
ICommunicationObject.BeginClose(AsyncCallback, Object) |
ClientBase<TChannel>kapatmak için zaman uyumsuz bir işlem başlatır. (Devralındığı yer: ClientBase<TChannel>) |
ICommunicationObject.BeginClose(TimeSpan, AsyncCallback, Object) |
Belirtilen zaman aşımıyla ClientBase<TChannel> kapatmak için zaman uyumsuz bir işlem başlatır. (Devralındığı yer: ClientBase<TChannel>) |
ICommunicationObject.BeginOpen(AsyncCallback, Object) |
ClientBase<TChannel> nesnesini açmak için zaman uyumsuz bir işlem başlatır. (Devralındığı yer: ClientBase<TChannel>) |
ICommunicationObject.BeginOpen(TimeSpan, AsyncCallback, Object) |
Belirli bir zaman aralığı içinde ClientBase<TChannel> nesnesini açmak için zaman uyumsuz bir işlem başlatır. (Devralındığı yer: ClientBase<TChannel>) |
ICommunicationObject.Close() |
İletişim nesnesinin geçerli durumundan kapalı duruma geçmesine neden olur. (Devralındığı yer: ClientBase<TChannel>) |
ICommunicationObject.Close(TimeSpan) |
ClientBase<TChannel> nesnesinin geçerli durumundan kapalı duruma geçmesine neden olur. (Devralındığı yer: ClientBase<TChannel>) |
ICommunicationObject.Closed |
ClientBase<TChannel> nesnesi geçerli durumundan kapalı duruma geçtiğinde çağrılan olay işleyicisi. (Devralındığı yer: ClientBase<TChannel>) |
ICommunicationObject.Closing |
ClientBase<TChannel> nesnesi geçerli durumundan kapalı duruma geçtiğinde çağrılan olay işleyicisi. (Devralındığı yer: ClientBase<TChannel>) |
ICommunicationObject.EndClose(IAsyncResult) |
ClientBase<TChannel> nesnesini kapatmak için zaman uyumsuz bir işlemi tamamlar. (Devralındığı yer: ClientBase<TChannel>) |
ICommunicationObject.EndOpen(IAsyncResult) |
ClientBase<TChannel> nesnesini açmak için zaman uyumsuz bir işlemi tamamlar. (Devralındığı yer: ClientBase<TChannel>) |
ICommunicationObject.Faulted |
ClientBase<TChannel> nesnesi üzerinde bir işlem gerçekleştirirken bir hata oluştuğunda çağrılan olay işleyicisi. (Devralındığı yer: ClientBase<TChannel>) |
ICommunicationObject.Open() |
Bir iletişim nesnesinin oluşturulan durumdan açık duruma geçmesine neden olur. (Devralındığı yer: ClientBase<TChannel>) |
ICommunicationObject.Open(TimeSpan) |
ClientBase<TChannel> nesnesinin belirtilen zaman aralığı içinde oluşturulan durumdan açık duruma geçmesine neden olur. (Devralındığı yer: ClientBase<TChannel>) |
ICommunicationObject.Opened |
ClientBase<TChannel> nesnesi oluşturulan durumdan açık duruma geçtiğinde çağrılan olay işleyicisi. (Devralındığı yer: ClientBase<TChannel>) |
ICommunicationObject.Opening |
ClientBase<TChannel> nesnesi oluşturulan durumdan açık duruma geçtiğinde çağrılan olay işleyicisi. (Devralındığı yer: ClientBase<TChannel>) |
IDisposable.Dispose() |
Dispose() yönteminin açık uygulaması. (Devralındığı yer: ClientBase<TChannel>) |
Uzantı Metotları
ConfigureAwait(IAsyncDisposable, Boolean) |
Zaman uyumsuz bir atılabilir öğeden döndürülen görevlerde awaits işleminin nasıl gerçekleştirileceğini yapılandırılır. |