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 System.ServiceModel.InstanceContext bir nesne geçirmek için çift yönlü WCF istemci türünün SampleDuplexHelloClient
istemcisinde 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
Sınıfını DuplexClientBase<TChannel> kullanarak geri çağırma nesnesini belirten bir hizmete kanal oluşturun. DuplexClientBase<TChannel> nesnesi, WCF nesnesi için bağlantı sağlayan bir System.ServiceModel.DuplexChannelFactory<TChannel> nesneyi sarmalar. Çift yönlü bir hizmete bağlanmak için her iki türü de 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 oluşturmasına neden olurlar IDisposable
Başvuru olmayan üyelerden kaçının: Derleyicinin otomatik olarak oluşturmasına neden olabilirler IDisposable
Sonlandırıcılardan kaçının; ancak bir tane eklerseniz, otomatik oluşturulan IDisposable davranışın ne olduğunu öykünmek için derleme uyarısını ve çağrısını SuppressFinalize(Object) ve sonlandırıcıyı (On)(Begin)Close (ve/veya OnAbort) öğesinden gizlemeniz gerekir.
Oluşturucular
DuplexClientBase<TChannel>(InstanceContext) |
Belirtilen geri çağırma nesnesini kullanarak sınıfın DuplexClientBase<TChannel> 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 sınıfın yeni bir örneğini DuplexClientBase<TChannel> başlatır. |
DuplexClientBase<TChannel>(InstanceContext, ServiceEndpoint) |
Belirtilen geri çağırma nesnesi ve hizmet uç noktası ile sınıfının yeni bir örneğini DuplexClientBase<TChannel> başlatır. |
DuplexClientBase<TChannel>(InstanceContext, String) |
Belirtilen geri çağırma nesnesini ve yapılandırma adını kullanarak sınıfın yeni bir örneğini DuplexClientBase<TChannel> başlatır. |
DuplexClientBase<TChannel>(InstanceContext, String, EndpointAddress) |
Belirtilen geri çağırma nesnesini, yapılandırma adını ve hizmet uç noktası adresini kullanarak sınıfın yeni bir örneğini DuplexClientBase<TChannel> başlatır. |
DuplexClientBase<TChannel>(InstanceContext, String, String) |
Belirtilen geri çağırma nesnesini, yapılandırma adını ve hizmet uç noktası adresini kullanarak sınıfın yeni bir örneğini DuplexClientBase<TChannel> başlatır. |
DuplexClientBase<TChannel>(Object) |
Belirtilen geri çağırma nesnesini kullanarak sınıfın DuplexClientBase<TChannel> 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 sınıfın yeni bir örneğini DuplexClientBase<TChannel> başlatır. |
DuplexClientBase<TChannel>(Object, ServiceEndpoint) |
Belirtilen geri çağırma nesnesi ve hizmet uç noktası ile sınıfının yeni bir örneğini DuplexClientBase<TChannel> başlatır. |
DuplexClientBase<TChannel>(Object, String) |
Belirtilen geri çağırma nesnesini ve yapılandırma adını kullanarak sınıfın yeni bir örneğini DuplexClientBase<TChannel> başlatır. |
DuplexClientBase<TChannel>(Object, String, EndpointAddress) |
Belirtilen geri çağırma nesnesini, yapılandırma adını ve hizmet uç noktası adresini kullanarak sınıfın yeni bir örneğini DuplexClientBase<TChannel> 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 sınıfın yeni bir örneğini DuplexClientBase<TChannel> 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> nesneyi 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 hizmet için hedef uç noktayı alır. (Devralındığı yer: ClientBase<TChannel>) |
InnerChannel |
Temel alınan IClientChannel uygulamayı alır. (Devralındığı yer: ClientBase<TChannel>) |
InnerDuplexChannel |
Çift yönlü kanal için temel alınan IClientChannel uygulamayı alır. |
State |
Nesnenin geçerli durumunu ClientBase<TChannel> alır. (Devralındığı yer: ClientBase<TChannel>) |
Yöntemler
Abort() |
Nesnenin ClientBase<TChannel> geçerli durumundan kapalı duruma hemen geçişine neden olur. (Devralındığı yer: ClientBase<TChannel>) |
Close() |
Nesnenin ClientBase<TChannel> 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, kullanmadan önce kanalı 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() |
Type Geçerli örneğini 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 Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
Open() |
Nesnenin ClientBase<TChannel> oluşturulan durumdan açık duruma geçmesine neden olur. (Devralındığı yer: ClientBase<TChannel>) |
OpenAsync() |
Ç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>) |
ToString() |
Geçerli nesneyi temsil eden dizeyi 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) |
kapatmak için ClientBase<TChannel>zaman uyumsuz bir işlem başlatır. (Devralındığı yer: ClientBase<TChannel>) |
ICommunicationObject.BeginClose(TimeSpan, AsyncCallback, Object) |
belirtilen zaman aşımı ile kapatmak ClientBase<TChannel> için zaman uyumsuz bir işlem başlatır. (Devralındığı yer: ClientBase<TChannel>) |
ICommunicationObject.BeginOpen(AsyncCallback, Object) |
Nesneyi açmak ClientBase<TChannel> için zaman uyumsuz bir işlem başlatır. (Devralındığı yer: ClientBase<TChannel>) |
ICommunicationObject.BeginOpen(TimeSpan, AsyncCallback, Object) |
Nesneyi belirli bir zaman aralığı içinde açmak ClientBase<TChannel> 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) |
Nesnenin ClientBase<TChannel> geçerli durumundan kapalı duruma geçmesine neden olur. (Devralındığı yer: ClientBase<TChannel>) |
ICommunicationObject.Closed |
Nesne geçerli durumundan kapalı duruma geçtiğinde ClientBase<TChannel> çağrılan olay işleyicisi. (Devralındığı yer: ClientBase<TChannel>) |
ICommunicationObject.Closing |
Nesne geçerli durumundan kapalı duruma geçtiğinde ClientBase<TChannel> çağrılan olay işleyicisi. (Devralındığı yer: ClientBase<TChannel>) |
ICommunicationObject.EndClose(IAsyncResult) |
Nesneyi kapatmak için zaman uyumsuz bir işlemi tamamlar ClientBase<TChannel> . (Devralındığı yer: ClientBase<TChannel>) |
ICommunicationObject.EndOpen(IAsyncResult) |
Nesneyi açmak için zaman uyumsuz bir işlemi tamamlar ClientBase<TChannel> . (Devralındığı yer: ClientBase<TChannel>) |
ICommunicationObject.Faulted |
Nesne üzerinde bir işlem gerçekleştirirken bir hata oluştuğunda çağrılan olay işleyicisi ClientBase<TChannel> . (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) |
Nesnenin ClientBase<TChannel> belirli bir süre içinde oluşturulan durumdan açık duruma geçmesine neden olur. (Devralındığı yer: ClientBase<TChannel>) |
ICommunicationObject.Opened |
Nesne oluşturulan durumdan açık duruma geçtiğinde ClientBase<TChannel> çağrılan olay işleyicisi. (Devralındığı yer: ClientBase<TChannel>) |
ICommunicationObject.Opening |
Nesne oluşturulan durumdan açık duruma geçtiğinde ClientBase<TChannel> çağrılan olay işleyicisi. (Devralındığı yer: ClientBase<TChannel>) |
IDisposable.Dispose() |
yönteminin Dispose() açık uygulaması. (Devralındığı yer: ClientBase<TChannel>) |
Uzantı Metotları
CloseHelperAsync(ICommunicationObject, TimeSpan) |
Çift yönlü bir hizmete kanal oluşturmak ve bu kanalı bir geri çağırma nesnesiyle ilişkilendirmek için kullanılır. |
OpenHelperAsync(ICommunicationObject, TimeSpan) |
Çift yönlü bir hizmete kanal oluşturmak ve bu kanalı bir geri çağırma nesnesiyle ilişkilendirmek için kullanılır. |
Şunlara uygulanır
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin