DuplexClientBase<TChannel> Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Służy do tworzenia kanału w usłudze dwukierunkowej i kojarzenia tego kanału z obiektem wywołania zwrotnego.
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)
Parametry typu
- TChannel
Typ kanału do utworzenia.
- Dziedziczenie
Przykłady
W poniższym przykładzie pokazano użycie w kliencie typu klienta dupleksu WCF, SampleDuplexHelloClient
, aby przekazać nowy System.ServiceModel.InstanceContext obiekt z obiektem wywołania zwrotnego w celu nasłuchiwania wywołań zwrotnych.
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
Uwagi
DuplexClientBase<TChannel> Użyj klasy , aby utworzyć kanał dla usługi, która określa obiekt wywołania zwrotnego. Obiekt DuplexClientBase<TChannel> opakowuje System.ServiceModel.DuplexChannelFactory<TChannel> obiekt, który zapewnia łączność dla obiektu WCF. Możesz użyć dowolnego typu, aby nawiązać połączenie z usługą dwukierunkową. Aby uzyskać więcej informacji na temat usług dwukierunkowych, zobacz Usługi dwukierunkowe.
Szczególna uwaga dla użytkowników zarządzanych języka C++ pochodnych z tej klasy:
Umieść kod oczyszczania w kodzie (On)(Begin)Close (i/lub OnAbort), a nie w destruktorze.
Unikaj destruktorów: powodują one automatyczne generowanie kompilatora IDisposable
Unikaj elementów członkowskich innych niż odwołania: mogą powodować automatyczne generowanie kompilatora IDisposable
Unikaj finalizatorów; Ale jeśli je uwzględnisz, należy pominąć ostrzeżenie i wywołanie SuppressFinalize(Object) kompilacji oraz sam finalizator z (On)(Begin)Close (i/lub OnAbort), aby naśladować zachowanie generowane IDisposable automatycznie.
Konstruktory
DuplexClientBase<TChannel>(InstanceContext) |
Inicjuje DuplexClientBase<TChannel> nowe wystąpienie klasy przy użyciu określonego obiektu wywołania zwrotnego. |
DuplexClientBase<TChannel>(InstanceContext, Binding, EndpointAddress) |
Inicjuje DuplexClientBase<TChannel> nowe wystąpienie klasy przy użyciu określonego obiektu wywołania zwrotnego, powiązania i adresu punktu końcowego usługi. |
DuplexClientBase<TChannel>(InstanceContext, ServiceEndpoint) |
Inicjuje DuplexClientBase<TChannel> nowe wystąpienie klasy z określonym obiektem wywołania zwrotnego i punktem końcowym usługi. |
DuplexClientBase<TChannel>(InstanceContext, String) |
Inicjuje DuplexClientBase<TChannel> nowe wystąpienie klasy przy użyciu określonego obiektu wywołania zwrotnego i nazwy konfiguracji. |
DuplexClientBase<TChannel>(InstanceContext, String, EndpointAddress) |
Inicjuje nowe wystąpienie DuplexClientBase<TChannel> klasy przy użyciu określonego obiektu wywołania zwrotnego, nazwy konfiguracji i adresu punktu końcowego usługi. |
DuplexClientBase<TChannel>(InstanceContext, String, String) |
Inicjuje nowe wystąpienie DuplexClientBase<TChannel> klasy przy użyciu określonego obiektu wywołania zwrotnego, nazwy konfiguracji i adresu punktu końcowego usługi. |
DuplexClientBase<TChannel>(Object) |
Inicjuje DuplexClientBase<TChannel> nowe wystąpienie klasy przy użyciu określonego obiektu wywołania zwrotnego. |
DuplexClientBase<TChannel>(Object, Binding, EndpointAddress) |
Inicjuje DuplexClientBase<TChannel> nowe wystąpienie klasy przy użyciu określonego obiektu wywołania zwrotnego, powiązania i adresu punktu końcowego usługi. |
DuplexClientBase<TChannel>(Object, ServiceEndpoint) |
Inicjuje DuplexClientBase<TChannel> nowe wystąpienie klasy z określonym obiektem wywołania zwrotnego i punktem końcowym usługi. |
DuplexClientBase<TChannel>(Object, String) |
Inicjuje DuplexClientBase<TChannel> nowe wystąpienie klasy przy użyciu określonego obiektu wywołania zwrotnego i nazwy konfiguracji. |
DuplexClientBase<TChannel>(Object, String, EndpointAddress) |
Inicjuje nowe wystąpienie DuplexClientBase<TChannel> klasy przy użyciu określonego obiektu wywołania zwrotnego, nazwy konfiguracji i adresu punktu końcowego usługi. |
DuplexClientBase<TChannel>(Object, String, String) |
Inicjuje DuplexClientBase<TChannel> nowe wystąpienie klasy przy użyciu określonego obiektu wywołania zwrotnego, nazwy konfiguracji punktu końcowego i adresu punktu końcowego usługi. |
Właściwości
Channel |
Pobiera kanał wewnętrzny używany do wysyłania komunikatów do różnych skonfigurowanych punktów końcowych usługi. (Odziedziczone po ClientBase<TChannel>) |
ChannelFactory |
Pobiera obiekt źródłowy ChannelFactory<TChannel> . (Odziedziczone po ClientBase<TChannel>) |
ClientCredentials |
Pobiera poświadczenia klienta użyte do wywołania operacji. (Odziedziczone po ClientBase<TChannel>) |
Endpoint |
Pobiera docelowy punkt końcowy usługi, z którą klient programu WCF może nawiązać połączenie. (Odziedziczone po ClientBase<TChannel>) |
InnerChannel |
Pobiera podstawową IClientChannel implementację. (Odziedziczone po ClientBase<TChannel>) |
InnerDuplexChannel |
Pobiera podstawową IClientChannel implementację kanału dwukierunkowego. |
State |
Pobiera bieżący stan ClientBase<TChannel> obiektu. (Odziedziczone po ClientBase<TChannel>) |
Metody
Abort() |
ClientBase<TChannel> Powoduje natychmiastowe przejście obiektu z bieżącego stanu do stanu zamkniętego. (Odziedziczone po ClientBase<TChannel>) |
Close() |
ClientBase<TChannel> Powoduje przejście obiektu z bieżącego stanu do stanu zamkniętego. (Odziedziczone po ClientBase<TChannel>) |
CloseAsync() |
Służy do tworzenia kanału w usłudze dwukierunkowej i kojarzenia tego kanału z obiektem wywołania zwrotnego. (Odziedziczone po ClientBase<TChannel>) |
CreateChannel() |
Zwraca kanał do usługi skojarzonej z obiektem wywołania zwrotnego przekazanym do konstruktora. |
CreateChannel() |
Zwraca nowy kanał do usługi. (Odziedziczone po ClientBase<TChannel>) |
DisplayInitializationUI() |
Instruuje kanał wewnętrzny, aby wyświetlał interfejs użytkownika, jeśli jest wymagany do zainicjowania kanału przed jego użyciem. (Odziedziczone po ClientBase<TChannel>) |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetDefaultValueForInitialization<T>() |
Replikuje zachowanie domyślnego słowa kluczowego w języku C#. (Odziedziczone po ClientBase<TChannel>) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
InvokeAsync(ClientBase<TChannel>.BeginOperationDelegate, Object[], ClientBase<TChannel>.EndOperationDelegate, SendOrPostCallback, Object) |
Zapewnia obsługę implementowania wzorca asynchronicznego opartego na zdarzeniach. Aby uzyskać więcej informacji na temat tego wzorca, zobacz Omówienie wzorca asynchronicznego opartego na zdarzeniach. (Odziedziczone po ClientBase<TChannel>) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
Open() |
ClientBase<TChannel> Powoduje przejście obiektu z utworzonego stanu do stanu otwartego. (Odziedziczone po ClientBase<TChannel>) |
OpenAsync() |
Służy do tworzenia kanału w usłudze dwukierunkowej i kojarzenia tego kanału z obiektem wywołania zwrotnego. (Odziedziczone po ClientBase<TChannel>) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Jawne implementacje interfejsu
IAsyncDisposable.DisposeAsync() |
Służy do tworzenia kanału w usłudze dwukierunkowej i kojarzenia tego kanału z obiektem wywołania zwrotnego. (Odziedziczone po ClientBase<TChannel>) |
ICommunicationObject.BeginClose(AsyncCallback, Object) |
Rozpoczyna operację asynchroniczną, aby zamknąć obiekt ClientBase<TChannel>. (Odziedziczone po ClientBase<TChannel>) |
ICommunicationObject.BeginClose(TimeSpan, AsyncCallback, Object) |
Rozpoczyna operację asynchroniczną, aby zamknąć obiekt ClientBase<TChannel> z określonym limitem czasu. (Odziedziczone po ClientBase<TChannel>) |
ICommunicationObject.BeginOpen(AsyncCallback, Object) |
Rozpoczyna operację asynchroniczną, aby otworzyć ClientBase<TChannel> obiekt. (Odziedziczone po ClientBase<TChannel>) |
ICommunicationObject.BeginOpen(TimeSpan, AsyncCallback, Object) |
Rozpoczyna operację asynchroniczną, aby otworzyć ClientBase<TChannel> obiekt w określonym przedziale czasu. (Odziedziczone po ClientBase<TChannel>) |
ICommunicationObject.Close() |
Powoduje przejście obiektu komunikacyjnego z bieżącego stanu do stanu zamkniętego. (Odziedziczone po ClientBase<TChannel>) |
ICommunicationObject.Close(TimeSpan) |
ClientBase<TChannel> Powoduje przejście obiektu z bieżącego stanu do stanu zamkniętego. (Odziedziczone po ClientBase<TChannel>) |
ICommunicationObject.Closed |
Procedura obsługi zdarzeń wywoływana po przejściu ClientBase<TChannel> obiektu z bieżącego stanu do stanu zamkniętego. (Odziedziczone po ClientBase<TChannel>) |
ICommunicationObject.Closing |
Procedura obsługi zdarzeń wywoływana, gdy ClientBase<TChannel> obiekt przechodzi z bieżącego stanu do stanu zamkniętego. (Odziedziczone po ClientBase<TChannel>) |
ICommunicationObject.EndClose(IAsyncResult) |
Kończy operację asynchroniczną, aby zamknąć ClientBase<TChannel> obiekt. (Odziedziczone po ClientBase<TChannel>) |
ICommunicationObject.EndOpen(IAsyncResult) |
Kończy operację asynchroniczną, aby otworzyć ClientBase<TChannel> obiekt. (Odziedziczone po ClientBase<TChannel>) |
ICommunicationObject.Faulted |
Procedura obsługi zdarzeń wywoływana w przypadku wystąpienia błędu podczas wykonywania operacji na ClientBase<TChannel> obiekcie. (Odziedziczone po ClientBase<TChannel>) |
ICommunicationObject.Open() |
Powoduje przejście obiektu komunikacji z utworzonego stanu do stanu otwartego. (Odziedziczone po ClientBase<TChannel>) |
ICommunicationObject.Open(TimeSpan) |
ClientBase<TChannel> Powoduje przejście obiektu z utworzonego stanu do stanu otwartego w określonym przedziale czasu. (Odziedziczone po ClientBase<TChannel>) |
ICommunicationObject.Opened |
Procedura obsługi zdarzeń wywoływana, gdy ClientBase<TChannel> obiekt przechodzi ze stanu utworzonego do stanu otwarcia. (Odziedziczone po ClientBase<TChannel>) |
ICommunicationObject.Opening |
Procedura obsługi zdarzeń wywoływana, gdy ClientBase<TChannel> obiekt przechodzi ze stanu utworzonego do stanu otwarcia. (Odziedziczone po ClientBase<TChannel>) |
IDisposable.Dispose() |
Jawna implementacja Dispose() metody . (Odziedziczone po ClientBase<TChannel>) |
Metody rozszerzania
CloseHelperAsync(ICommunicationObject, TimeSpan) |
Służy do tworzenia kanału w usłudze dwukierunkowej i kojarzenia tego kanału z obiektem wywołania zwrotnego. |
OpenHelperAsync(ICommunicationObject, TimeSpan) |
Służy do tworzenia kanału w usłudze dwukierunkowej i kojarzenia tego kanału z obiektem wywołania zwrotnego. |
ConfigureAwait(IAsyncDisposable, Boolean) |
Konfiguruje sposób oczekiwania na zadania zwracane z jednorazowego użytku asynchronicznego. |
Dotyczy
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla