DuplexClientBase<TChannel> Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Används för att skapa en kanal till en duplex-tjänst och associera den kanalen med ett motringningsobjekt.
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)
Typparametrar
- TChannel
Vilken typ av kanal som ska skapas.
- Arv
Exempel
I följande exempel visas användningen i klienten av en duplex-WCF-klienttyp, , SampleDuplexHelloClientför att skicka ett nytt System.ServiceModel.InstanceContext objekt med motringningsobjektet för att lyssna efter återanrop.
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
Kommentarer
DuplexClientBase<TChannel> Använd klassen för att skapa en kanal till en tjänst som anger ett motringningsobjekt. Objektet DuplexClientBase<TChannel> omsluter ett System.ServiceModel.DuplexChannelFactory<TChannel> objekt som tillhandahåller anslutningen för WCF-objektet. Du kan använda någon av typerna för att ansluta till en duplex-tjänst. Mer information om duplex-tjänster finns i Duplex Services.
Särskild anmärkning för hanterade C++-användare som härleds från den här klassen:
- Placera din rensningskod i (På)(Begin)Close (och/eller OnAbort), inte i en destruktor.
- Undvik destructors: de gör att kompilatorn automatiskt genererar IDisposable.
- Undvik icke-referensmedlemmar: de kan göra så att kompilatorn automatiskt genererar IDisposable.
- Undvik finalizers; men om du inkluderar en bör du ignorera byggvarningen och anropet SuppressFinalize(Object) och själva slutföraren från (På)(Begin)Close (och/eller OnAbort) för att emulera vad som skulle ha varit det automatiskt genererade beteendet IDisposable .
Konstruktorer
| Name | Description |
|---|---|
| DuplexClientBase<TChannel>(InstanceContext, Binding, EndpointAddress) |
Initierar en ny instans av DuplexClientBase<TChannel> klassen med det angivna motringningsobjektet, bindningen och tjänstslutpunktsadressen. |
| DuplexClientBase<TChannel>(InstanceContext, ServiceEndpoint) |
Initierar en ny instans av DuplexClientBase<TChannel> klassen med det angivna motringningsobjektet och tjänstslutpunkten. |
| DuplexClientBase<TChannel>(InstanceContext, String, EndpointAddress) |
Initierar en ny instans av DuplexClientBase<TChannel> klassen med det angivna motringningsobjektet, konfigurationsnamnet och tjänstslutpunktsadressen. |
| DuplexClientBase<TChannel>(InstanceContext, String, String) |
Initierar en ny instans av DuplexClientBase<TChannel> klassen med det angivna motringningsobjektet, konfigurationsnamnet och tjänstslutpunktsadressen. |
| DuplexClientBase<TChannel>(InstanceContext, String) |
Initierar en ny instans av DuplexClientBase<TChannel> klassen med det angivna motringningsobjektet och konfigurationsnamnet. |
| DuplexClientBase<TChannel>(InstanceContext) |
Initierar en ny instans av DuplexClientBase<TChannel> klassen med det angivna motringningsobjektet. |
| DuplexClientBase<TChannel>(Object, Binding, EndpointAddress) |
Initierar en ny instans av DuplexClientBase<TChannel> klassen med det angivna motringningsobjektet, bindningen och tjänstslutpunktsadressen. |
| DuplexClientBase<TChannel>(Object, ServiceEndpoint) |
Initierar en ny instans av DuplexClientBase<TChannel> klassen med det angivna motringningsobjektet och tjänstslutpunkten. |
| DuplexClientBase<TChannel>(Object, String, EndpointAddress) |
Initierar en ny instans av DuplexClientBase<TChannel> klassen med det angivna motringningsobjektet, konfigurationsnamnet och tjänstslutpunktsadressen. |
| DuplexClientBase<TChannel>(Object, String, String) |
Initierar en ny instans av DuplexClientBase<TChannel> klassen med det angivna motringningsobjektet, konfigurationsnamnet för slutpunkten och tjänstslutpunktsadressen. |
| DuplexClientBase<TChannel>(Object, String) |
Initierar en ny instans av DuplexClientBase<TChannel> klassen med det angivna motringningsobjektet och konfigurationsnamnet. |
| DuplexClientBase<TChannel>(Object) |
Initierar en ny instans av DuplexClientBase<TChannel> klassen med det angivna motringningsobjektet. |
Egenskaper
| Name | Description |
|---|---|
| Channel |
Hämtar den inre kanalen som används för att skicka meddelanden till olika konfigurerade tjänstslutpunkter. (Ärvd från ClientBase<TChannel>) |
| ChannelFactory |
Hämtar det underliggande ChannelFactory<TChannel> objektet. (Ärvd från ClientBase<TChannel>) |
| ClientCredentials |
Hämtar klientens autentiseringsuppgifter som används för att anropa en åtgärd. (Ärvd från ClientBase<TChannel>) |
| Endpoint |
Hämtar målslutpunkten för tjänsten som WCF-klienten kan ansluta till. (Ärvd från ClientBase<TChannel>) |
| InnerChannel |
Hämtar den underliggande IClientChannel implementeringen. (Ärvd från ClientBase<TChannel>) |
| InnerDuplexChannel |
Hämtar den underliggande IClientChannel implementeringen för duplex-kanalen. |
| State |
Hämtar objektets ClientBase<TChannel> aktuella tillstånd. (Ärvd från ClientBase<TChannel>) |
Metoder
| Name | Description |
|---|---|
| Abort() |
Gör att objektet ClientBase<TChannel> övergår omedelbart från dess aktuella tillstånd till det stängda tillståndet. (Ärvd från ClientBase<TChannel>) |
| Close() |
Gör att objektet ClientBase<TChannel> övergår från dess aktuella tillstånd till det stängda tillståndet. (Ärvd från ClientBase<TChannel>) |
| CreateChannel() |
Returnerar en kanal till tjänsten som är associerad med motringningsobjektet som skickas till konstruktorn. |
| CreateChannel() |
Returnerar en ny kanal till tjänsten. (Ärvd från ClientBase<TChannel>) |
| DisplayInitializationUI() |
Instruerar den inre kanalen att visa ett användargränssnitt om det krävs för att initiera kanalen innan den används. (Ärvd från ClientBase<TChannel>) |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetDefaultValueForInitialization<T>() |
Replikerar beteendet för standardnyckelordet i C#. (Ärvd från ClientBase<TChannel>) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| InvokeAsync(ClientBase<TChannel>.BeginOperationDelegate, Object[], ClientBase<TChannel>.EndOperationDelegate, SendOrPostCallback, Object) |
Ger stöd för att implementera det händelsebaserade asynkrona mönstret. Mer information om det här mönstret finns i Händelsebaserad asynkron mönsteröversikt. (Ärvd från ClientBase<TChannel>) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| Open() |
ClientBase<TChannel> Gör att objektet övergår från det skapade tillståndet till det öppnade tillståndet. (Ärvd från ClientBase<TChannel>) |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |
Explicita gränssnittsimplementeringar
| Name | Description |
|---|---|
| ICommunicationObject.BeginClose(AsyncCallback, Object) |
Påbörjar en asynkron åtgärd för att stänga ClientBase<TChannel>. (Ärvd från ClientBase<TChannel>) |
| ICommunicationObject.BeginClose(TimeSpan, AsyncCallback, Object) |
Påbörjar en asynkron åtgärd för att stänga ClientBase<TChannel> med en angiven tidsgräns. (Ärvd från ClientBase<TChannel>) |
| ICommunicationObject.BeginOpen(AsyncCallback, Object) |
Påbörjar en asynkron åtgärd för att öppna ClientBase<TChannel> objektet. (Ärvd från ClientBase<TChannel>) |
| ICommunicationObject.BeginOpen(TimeSpan, AsyncCallback, Object) |
Påbörjar en asynkron åtgärd för att öppna ClientBase<TChannel> objektet inom ett angivet tidsintervall. (Ärvd från ClientBase<TChannel>) |
| ICommunicationObject.Close() |
Gör att ett kommunikationsobjekt övergår från dess aktuella tillstånd till det stängda tillståndet. (Ärvd från ClientBase<TChannel>) |
| ICommunicationObject.Close(TimeSpan) |
Gör att objektet ClientBase<TChannel> övergår från dess aktuella tillstånd till det stängda tillståndet. (Ärvd från ClientBase<TChannel>) |
| ICommunicationObject.Closed |
Händelsehanteraren som anropas när ClientBase<TChannel> objektet har övergått från dess aktuella tillstånd till det stängda tillståndet. (Ärvd från ClientBase<TChannel>) |
| ICommunicationObject.Closing |
Händelsehanteraren som anropas när objektet ClientBase<TChannel> övergår från dess aktuella tillstånd till det stängda tillståndet. (Ärvd från ClientBase<TChannel>) |
| ICommunicationObject.EndClose(IAsyncResult) |
Slutför en asynkron åtgärd för att stänga objektet ClientBase<TChannel> . (Ärvd från ClientBase<TChannel>) |
| ICommunicationObject.EndOpen(IAsyncResult) |
Slutför en asynkron åtgärd för att öppna ClientBase<TChannel> objektet. (Ärvd från ClientBase<TChannel>) |
| ICommunicationObject.Faulted |
Händelsehanteraren som anropas när ett fel inträffar när en åtgärd utförs på ClientBase<TChannel> objektet. (Ärvd från ClientBase<TChannel>) |
| ICommunicationObject.Open() |
Gör att ett kommunikationsobjekt övergår från det skapade tillståndet till det öppnade tillståndet. (Ärvd från ClientBase<TChannel>) |
| ICommunicationObject.Open(TimeSpan) |
ClientBase<TChannel> Gör att objektet övergår från det skapade tillståndet till det öppnade tillståndet inom ett angivet tidsintervall. (Ärvd från ClientBase<TChannel>) |
| ICommunicationObject.Opened |
Händelsehanteraren som anropas när objektet ClientBase<TChannel> övergår från det skapade tillståndet till det öppnade tillståndet. (Ärvd från ClientBase<TChannel>) |
| ICommunicationObject.Opening |
Händelsehanteraren som anropas när objektet ClientBase<TChannel> övergår från det skapade tillståndet till det öppnade tillståndet. (Ärvd från ClientBase<TChannel>) |
| IDisposable.Dispose() |
Explicit implementering av Dispose() metoden. (Ärvd från ClientBase<TChannel>) |