DuplexChannelFactory<TChannel> Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Biedt de middelen voor het maken en beheren van duplexkanalen van verschillende typen die door clients worden gebruikt voor het verzenden en ontvangen van berichten naar en van service-eindpunten.
generic <typename TChannel>
public ref class DuplexChannelFactory : System::ServiceModel::ChannelFactory<TChannel>
public class DuplexChannelFactory<TChannel> : System.ServiceModel.ChannelFactory<TChannel>
type DuplexChannelFactory<'Channel> = class
inherit ChannelFactory<'Channel>
Public Class DuplexChannelFactory(Of TChannel)
Inherits ChannelFactory(Of TChannel)
Type parameters
- TChannel
Het type kanaal dat door de kanaalfactory wordt geproduceerd.
- Overname
- Afgeleid
Voorbeelden
In het volgende voorbeeld ziet u hoe u een kanaalfactory maakt en deze gebruikt om kanalen te maken en te beheren.
// Construct InstanceContext to handle messages on the callback interface.
// An instance of ChatApp is created and passed to the InstanceContext.
InstanceContext site = new InstanceContext(new ChatApp());
// Create the participant with the given endpoint configuration.
// Each participant opens a duplex channel to the mesh.
// Participant is an instance of the chat application that has opened a channel to the mesh.
using (DuplexChannelFactory<IChatChannel> cf =
new DuplexChannelFactory<IChatChannel>(site,"ChatEndpoint"))
{
X509Certificate2 issuer = GetCertificate(
StoreName.CertificateAuthority,
StoreLocation.CurrentUser, "CN=" + issuerName,
X509FindType.FindBySubjectDistinguishedName);
cf.Credentials.Peer.Certificate =
GetCertificate(StoreName.My,
StoreLocation.CurrentUser,
"CN=" + member,
X509FindType.FindBySubjectDistinguishedName);
cf.Credentials.Peer.PeerAuthentication.CertificateValidationMode =
X509CertificateValidationMode.Custom;
cf.Credentials.Peer.PeerAuthentication.CustomCertificateValidator =
new IssuerBasedValidator();
using (IChatChannel participant = cf.CreateChannel())
{
// Retrieve the PeerNode associated with the participant and register for online/offline events.
// PeerNode represents a node in the mesh. Mesh is the named collection of connected nodes.
IOnlineStatus ostat = participant.GetProperty<IOnlineStatus>();
ostat.Online += new EventHandler(OnOnline);
ostat.Offline += new EventHandler(OnOffline);
Console.WriteLine("{0} is ready", member);
Console.WriteLine("Press <ENTER> to send the chat message.");
// Announce self to other participants.
participant.Join(member);
Console.ReadLine();
participant.Chat(member, "Hi there - I am chatting");
Console.WriteLine("Press <ENTER> to terminate this instance of chat.");
Console.ReadLine();
// Leave the mesh and close the client.
participant.Leave(member);
}
}
Opmerkingen
Met een dubbelzijdig kanaal kunnen clients en servers onafhankelijk van elkaar communiceren, zodat beide aanroepen naar de andere kunnen initiëren. Een duplex-service kan berichten verzenden naar het clienteindpunt, wat een gebeurtenisachtig gedrag biedt. Dubbelzijdige communicatie vindt plaats wanneer een client een sessie met een service tot stand brengt en de service een kanaal biedt waarop de service berichten naar de client kan verzenden. De verschillende CreateChannel methoden worden gebruikt om deze duplex kanalen te maken. Het dubbelzijdige berichtpatroon is een van de drie berichtpatronen die beschikbaar zijn voor Windows Communication Foundation (WCF)-services. De andere twee berichtpatronen zijn enkelvoudig en vraag-antwoord.
Zie Duplex Services voor een algemene bespreking van duplexservices waarmee clients weer verbinding kunnen maken met de service. Zie
Constructors
| Name | Description |
|---|---|
| DuplexChannelFactory<TChannel>(InstanceContext, Binding, EndpointAddress) |
Initialiseert een nieuw exemplaar van de DuplexChannelFactory<TChannel> klasse met een object waarmee het callback-contract en een opgegeven binding en eindpuntadres worden geïmplementeerd. |
| DuplexChannelFactory<TChannel>(InstanceContext, Binding, String) |
Initialiseert een nieuw exemplaar van de DuplexChannelFactory<TChannel> klasse met de opgegeven instantiecontext, binding en extern adres. |
| DuplexChannelFactory<TChannel>(InstanceContext, Binding) |
Initialiseert een nieuw exemplaar van de DuplexChannelFactory<TChannel> klasse met een context waarmee het callback-contract en een opgegeven binding worden geïmplementeerd. |
| DuplexChannelFactory<TChannel>(InstanceContext, ServiceEndpoint) |
Initialiseert een nieuw exemplaar van de DuplexChannelFactory<TChannel> klasse met een object dat het callback-contract en een opgegeven eindpunt implementeert. |
| DuplexChannelFactory<TChannel>(InstanceContext, String, EndpointAddress) |
Initialiseert een nieuw exemplaar van de DuplexChannelFactory<TChannel> klasse met een object waarmee het callback-contract en een opgegeven configuratie- en eindpuntadres worden geïmplementeerd. |
| DuplexChannelFactory<TChannel>(InstanceContext, String) |
Initialiseert een nieuw exemplaar van de DuplexChannelFactory<TChannel> klasse met een object dat het callback-contract en een opgegeven configuratie implementeert. |
| DuplexChannelFactory<TChannel>(InstanceContext) |
Initialiseert een nieuw exemplaar van de DuplexChannelFactory<TChannel> klasse met de opgegeven exemplaarcontext. |
| DuplexChannelFactory<TChannel>(Object, Binding, EndpointAddress) |
Initialiseert een nieuw exemplaar van de DuplexChannelFactory<TChannel> klasse met een object waarmee het callback-contract en een opgegeven binding en eindpuntadres worden geïmplementeerd. |
| DuplexChannelFactory<TChannel>(Object, Binding, String) |
Initialiseert een nieuw exemplaar van de DuplexChannelFactory<TChannel> klasse met opgegeven callback-object, binding en extern adres. |
| DuplexChannelFactory<TChannel>(Object, Binding) |
Initialiseert een nieuw exemplaar van de DuplexChannelFactory<TChannel> klasse met een object dat het callback-contract en een opgegeven binding implementeert. |
| DuplexChannelFactory<TChannel>(Object, ServiceEndpoint) |
Initialiseert een nieuw exemplaar van de DuplexChannelFactory<TChannel> klasse met een object dat het callback-contract en een opgegeven eindpunt implementeert. |
| DuplexChannelFactory<TChannel>(Object, String, EndpointAddress) |
Initialiseert een nieuw exemplaar van de DuplexChannelFactory<TChannel> klasse met een object dat het callback-contract implementeert en een opgegeven configuratie- en eindpuntadres. |
| DuplexChannelFactory<TChannel>(Object, String) |
Initialiseert een nieuw exemplaar van de DuplexChannelFactory<TChannel> klasse met een object dat het callback-contract en een opgegeven configuratie implementeert. |
| DuplexChannelFactory<TChannel>(Object) |
Initialiseert een nieuw exemplaar van de DuplexChannelFactory<TChannel> klasse met een object waarmee het callback-contract wordt geïmplementeerd. |
| DuplexChannelFactory<TChannel>(Type, Binding, EndpointAddress) |
Initialiseert een nieuw exemplaar van de DuplexChannelFactory<TChannel> klasse met het opgegeven type callback-exemplaar, binding en extern adres. |
| DuplexChannelFactory<TChannel>(Type, Binding, String) |
Initialiseert een nieuw exemplaar van de DuplexChannelFactory<TChannel> klasse met het opgegeven type callback-exemplaar, binding en extern adres. |
| DuplexChannelFactory<TChannel>(Type, Binding) |
Initialiseert een nieuw exemplaar van de DuplexChannelFactory<TChannel> klasse met het opgegeven type callback-exemplaar en binding. |
| DuplexChannelFactory<TChannel>(Type, ServiceEndpoint) |
Initialiseert een nieuw exemplaar van de DuplexChannelFactory<TChannel> klasse met het opgegeven type callback-exemplaar en service-eindpunt. |
| DuplexChannelFactory<TChannel>(Type, String, EndpointAddress) |
Initialiseert een nieuw exemplaar van de DuplexChannelFactory<TChannel> klasse met het opgegeven type callback-exemplaar, configuratie en extern adres. |
| DuplexChannelFactory<TChannel>(Type, String) |
Initialiseert een nieuw exemplaar van de DuplexChannelFactory<TChannel> klasse met het opgegeven type callback-exemplaar en -configuratie. |
| DuplexChannelFactory<TChannel>(Type) |
Initialiseert een nieuw exemplaar van de DuplexChannelFactory<TChannel> klasse met het opgegeven type callback-exemplaar. |
Eigenschappen
| Name | Description |
|---|---|
| Credentials |
Hiermee haalt u de referenties op die door clients worden gebruikt om een service-eindpunt te communiceren via de kanalen die door de fabriek worden geproduceerd. (Overgenomen van ChannelFactory) |
| DefaultCloseTimeout |
Hiermee wordt het standaardinterval van de tijd opgegeven voor een sluitingsbewerking voltooid. (Overgenomen van ChannelFactory) |
| DefaultOpenTimeout |
Hiermee haalt u het standaardinterval van de tijd op dat een geopende bewerking moet worden voltooid. (Overgenomen van ChannelFactory) |
| Endpoint |
Hiermee haalt u het service-eindpunt op waarnaar de kanalen die door de fabriek worden geproduceerd, verbinding maken. (Overgenomen van ChannelFactory) |
| IsDisposed |
Hiermee wordt een waarde opgehaald die aangeeft of het communicatieobject is verwijderd. (Overgenomen van CommunicationObject) |
| State |
Hiermee wordt een waarde opgehaald die de huidige status van het communicatieobject aangeeft. (Overgenomen van CommunicationObject) |
| ThisLock |
Hiermee haalt u de wederzijds exclusieve vergrendeling op die het klasse-exemplaar beschermt tijdens een statusovergang. (Overgenomen van CommunicationObject) |
Methoden
| Name | Description |
|---|---|
| Abort() |
Zorgt ervoor dat een communicatieobject onmiddellijk van de huidige status overgaat naar de slotstatus. (Overgenomen van CommunicationObject) |
| ApplyConfiguration(String) |
Initialiseert de kanaalfactory met het gedrag van een opgegeven configuratiebestand en met die in het service-eindpunt van de kanaalfactory. (Overgenomen van ChannelFactory) |
| BeginClose(AsyncCallback, Object) |
Hiermee wordt een asynchrone bewerking gestart om een communicatieobject te sluiten. (Overgenomen van CommunicationObject) |
| BeginClose(TimeSpan, AsyncCallback, Object) |
Hiermee wordt een asynchrone bewerking gestart om een communicatieobject met een opgegeven time-out te sluiten. (Overgenomen van CommunicationObject) |
| BeginOpen(AsyncCallback, Object) |
Begint een asynchrone bewerking om een communicatieobject te openen. (Overgenomen van CommunicationObject) |
| BeginOpen(TimeSpan, AsyncCallback, Object) |
Begint een asynchrone bewerking om een communicatieobject binnen een opgegeven tijdsinterval te openen. (Overgenomen van CommunicationObject) |
| Close() |
Zorgt ervoor dat een communicatieobject van de huidige status overgaat naar de gesloten status. (Overgenomen van CommunicationObject) |
| Close(TimeSpan) |
Zorgt ervoor dat een communicatieobject binnen een opgegeven tijdsinterval van de huidige status overgaat naar de gesloten status. (Overgenomen van CommunicationObject) |
| CreateChannel() |
Hiermee maakt u een kanaal van een opgegeven type naar een opgegeven eindpuntadres. (Overgenomen van ChannelFactory<TChannel>) |
| CreateChannel(EndpointAddress, Uri) |
Hiermee maakt u een dubbelzijdig kanaal tussen een service en een callback-exemplaar op de client. |
| CreateChannel(EndpointAddress) |
Hiermee maakt u een kanaal dat wordt gebruikt voor het verzenden van berichten naar een service op een specifiek eindpuntadres. (Overgenomen van ChannelFactory<TChannel>) |
| CreateChannel(InstanceContext, Binding, EndpointAddress, Uri) |
Hiermee maakt u een dubbelzijdig kanaal tussen een service en een callback-exemplaar op de client. |
| CreateChannel(InstanceContext, Binding, EndpointAddress) |
Hiermee maakt u een dubbelzijdig kanaal tussen een service en een callback-exemplaar op de client. |
| CreateChannel(InstanceContext, EndpointAddress, Uri) |
Hiermee maakt u een dubbelzijdig kanaal tussen een service en een callback-exemplaar op de client. |
| CreateChannel(InstanceContext, EndpointAddress) |
Hiermee maakt u een dubbelzijdig kanaal tussen een service en een callback-exemplaar op de client. |
| CreateChannel(InstanceContext, String) |
Hiermee maakt u een dubbelzijdig kanaal tussen een service en een callback-exemplaar op de client. |
| CreateChannel(InstanceContext) |
Hiermee maakt u een dubbelzijdig kanaal tussen een service en een callback-exemplaar op de client. |
| CreateChannel(Object, Binding, EndpointAddress, Uri) |
Hiermee maakt u een dubbelzijdig kanaal tussen een service en een callback-exemplaar op de client. |
| CreateChannel(Object, Binding, EndpointAddress) |
Hiermee maakt u een dubbelzijdig kanaal tussen een service en een callback-exemplaar op de client. |
| CreateChannel(Object, String) |
Hiermee maakt u een dubbelzijdig kanaal tussen een service en een callback-exemplaar op de client. |
| CreateChannelWithActAsToken(SecurityToken, EndpointAddress, Uri) |
Hiermee maakt u een kanaal dat wordt gebruikt om berichten naar een service te verzenden met een beveiligingstoken op een specifiek eindpuntadres via een opgegeven transportadres. (Overgenomen van ChannelFactory<TChannel>) |
| CreateChannelWithActAsToken(SecurityToken, EndpointAddress) |
Hiermee maakt u een kanaal dat wordt gebruikt om berichten naar een service te verzenden met een beveiligingstoken op een specifiek eindpuntadres. (Overgenomen van ChannelFactory<TChannel>) |
| CreateChannelWithActAsToken(SecurityToken) |
Hiermee maakt u een kanaal dat wordt gebruikt voor het verzenden van berichten naar een service met een actie als beveiligingstoken. (Overgenomen van ChannelFactory<TChannel>) |
| CreateChannelWithIssuedToken(SecurityToken, EndpointAddress, Uri) |
Hiermee maakt u een kanaal dat wordt gebruikt voor het verzenden van berichten naar een service met een uitgegeven beveiligingstoken op een specifiek eindpuntadres via een opgegeven transportadres. (Overgenomen van ChannelFactory<TChannel>) |
| CreateChannelWithIssuedToken(SecurityToken, EndpointAddress) |
Hiermee maakt u een kanaal dat wordt gebruikt voor het verzenden van berichten naar een service met een uitgegeven beveiligingstoken op een specifiek eindpuntadres. (Overgenomen van ChannelFactory<TChannel>) |
| CreateChannelWithIssuedToken(SecurityToken) |
Hiermee maakt u een kanaal dat wordt gebruikt voor het verzenden van berichten naar een service met een uitgegeven beveiligingstoken. (Overgenomen van ChannelFactory<TChannel>) |
| CreateChannelWithOnBehalfOfToken(SecurityToken, EndpointAddress, Uri) |
Hiermee maakt u een kanaal dat wordt gebruikt voor het verzenden van berichten naar een service met een beveiligingstoken namens een specifiek eindpuntadres via een opgegeven transportadres. (Overgenomen van ChannelFactory<TChannel>) |
| CreateChannelWithOnBehalfOfToken(SecurityToken, EndpointAddress) |
Hiermee maakt u een kanaal dat wordt gebruikt voor het verzenden van berichten naar een service met een namens een beveiligingstoken op een specifiek eindpuntadres. (Overgenomen van ChannelFactory<TChannel>) |
| CreateChannelWithOnBehalfOfToken(SecurityToken) |
Hiermee maakt u een kanaal dat wordt gebruikt voor het verzenden van berichten naar een service met een namens het beveiligingstoken. (Overgenomen van ChannelFactory<TChannel>) |
| CreateDescription() |
Hiermee maakt u een beschrijving van het service-eindpunt. (Overgenomen van ChannelFactory<TChannel>) |
| CreateFactory() |
Hiermee wordt de kanaalfactory gebouwd voor het huidige eindpunt van de factory. (Overgenomen van ChannelFactory) |
| EndClose(IAsyncResult) |
Hiermee voltooit u een asynchrone bewerking om een communicatieobject te sluiten. (Overgenomen van CommunicationObject) |
| EndOpen(IAsyncResult) |
Voltooit een asynchrone bewerking om een communicatieobject te openen. (Overgenomen van CommunicationObject) |
| EnsureOpened() |
Hiermee opent u de huidige kanaalfactory als deze nog niet is geopend. (Overgenomen van ChannelFactory) |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| Fault() |
Zorgt ervoor dat een communicatieobject wordt overgezet van de huidige status naar de foutieve status. (Overgenomen van CommunicationObject) |
| GetCommunicationObjectType() |
Hiermee wordt het type communicatieobject opgehaald. (Overgenomen van CommunicationObject) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetProperty<T>() |
Retourneert het aangevraagde getypte object, indien aanwezig, van de juiste laag in de kanaalstack of |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| InitializeEndpoint(Binding, EndpointAddress) |
Initialiseert het service-eindpunt van de kanaalfactory met een opgegeven binding en een opgegeven adres. (Overgenomen van ChannelFactory) |
| InitializeEndpoint(ServiceEndpoint) |
Initialiseert het service-eindpunt van de kanaalfactory met een opgegeven eindpunt. (Overgenomen van ChannelFactory) |
| InitializeEndpoint(String, EndpointAddress) |
Initialiseert het service-eindpunt van de kanaalfactory met een opgegeven adres en configuratie. (Overgenomen van ChannelFactory) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| OnAbort() |
Hiermee wordt de binnenste kanaalfactory van de huidige kanaalfactory beëindigd. (Overgenomen van ChannelFactory) |
| OnBeginClose(TimeSpan, AsyncCallback, Object) |
Hiermee begint u een asynchrone sluitingsbewerking op de binnenkanaalfactory van de huidige kanaalfactory waaraan een statusobject is gekoppeld. (Overgenomen van ChannelFactory) |
| OnBeginOpen(TimeSpan, AsyncCallback, Object) |
Hiermee wordt een asynchrone open bewerking gestart op de binnenkanaalfactory van de huidige kanaalfactory waaraan een statusobject is gekoppeld. (Overgenomen van ChannelFactory) |
| OnClose(TimeSpan) |
Aanroepen sluiten op de binnenste kanaalfactory met een opgegeven time-out voor de voltooiing van de bewerking. (Overgenomen van ChannelFactory) |
| OnClosed() |
Aangeroepen tijdens de overgang van een communicatieobject in de slotstatus. (Overgenomen van CommunicationObject) |
| OnClosing() |
Aangeroepen tijdens de overgang van een communicatieobject in de slotstatus. (Overgenomen van CommunicationObject) |
| OnEndClose(IAsyncResult) |
Hiermee voltooit u een asynchrone sluitingsbewerking op de binnenkanaalfactory van de huidige kanaalfactory. (Overgenomen van ChannelFactory) |
| OnEndOpen(IAsyncResult) |
Hiermee voltooit u een asynchrone open bewerking op de binnenkanaalfactory van de huidige kanaalfactory. (Overgenomen van ChannelFactory) |
| OnFaulted() |
Hiermee wordt de verwerking van een communicatieobject ingevoegd nadat het is overgeschakeld naar de status Met fouten als gevolg van de aanroep van een synchrone foutbewerking. (Overgenomen van CommunicationObject) |
| OnOpen(TimeSpan) |
Aanroepen worden geopend op de binnenste kanaalfactory van de huidige kanaalfactory met een opgegeven time-out voor de voltooiing van de bewerking. (Overgenomen van ChannelFactory) |
| OnOpened() |
Initialiseert een alleen-lezen kopie van het ClientCredentials object voor de kanaalfactory. (Overgenomen van ChannelFactory) |
| OnOpening() |
Hiermee wordt de binnenste kanaalfactory voor het huidige kanaal gebouwd. (Overgenomen van ChannelFactory) |
| Open() |
Zorgt ervoor dat een communicatieobject wordt overgezet van de gemaakte status in de geopende status. (Overgenomen van CommunicationObject) |
| Open(TimeSpan) |
Zorgt ervoor dat een communicatieobject binnen een opgegeven tijdsinterval van de gemaakte status overgaat naar de geopende status. (Overgenomen van CommunicationObject) |
| ThrowIfDisposed() |
Genereert een uitzondering als het communicatieobject wordt verwijderd. (Overgenomen van CommunicationObject) |
| ThrowIfDisposedOrImmutable() |
Genereert een uitzondering als het communicatieobject de State eigenschap niet is ingesteld op de Created status. (Overgenomen van CommunicationObject) |
| ThrowIfDisposedOrNotOpen() |
Genereert een uitzondering als het communicatieobject niet de Opened status heeft. (Overgenomen van CommunicationObject) |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |
gebeurtenis
| Name | Description |
|---|---|
| Closed |
Treedt op wanneer een communicatieobject overgaat naar de gesloten status. (Overgenomen van CommunicationObject) |
| Closing |
Treedt op wanneer een communicatieobject overgaat naar de slotstatus. (Overgenomen van CommunicationObject) |
| Faulted |
Treedt op wanneer een communicatieobject overgaat naar de foutieve status. (Overgenomen van CommunicationObject) |
| Opened |
Treedt op wanneer een communicatieobject overgaat naar de geopende status. (Overgenomen van CommunicationObject) |
| Opening |
Treedt op wanneer een communicatieobject overgaat naar de openingsstatus. (Overgenomen van CommunicationObject) |
Expliciete interface-implementaties
| Name | Description |
|---|---|
| IDisposable.Dispose() |
Hiermee sluit u de huidige kanaalfactory. (Overgenomen van ChannelFactory) |