ChannelFactory Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Crée et gère les canaux utilisés par les clients pour envoyer des messages aux points de terminaison de service.
public ref class ChannelFactory abstract : System::ServiceModel::Channels::CommunicationObject, IDisposable, System::ServiceModel::Channels::IChannelFactory
public ref class ChannelFactory abstract : System::ServiceModel::Channels::CommunicationObject, IAsyncDisposable, IDisposable, System::ServiceModel::Channels::IChannelFactory
public abstract class ChannelFactory : System.ServiceModel.Channels.CommunicationObject, IDisposable, System.ServiceModel.Channels.IChannelFactory
public abstract class ChannelFactory : System.ServiceModel.Channels.CommunicationObject, IAsyncDisposable, IDisposable, System.ServiceModel.Channels.IChannelFactory
type ChannelFactory = class
inherit CommunicationObject
interface IDisposable
interface IChannelFactory
interface ICommunicationObject
type ChannelFactory = class
inherit CommunicationObject
interface IChannelFactory
interface ICommunicationObject
interface IDisposable
interface IAsyncDisposable
type ChannelFactory = class
inherit CommunicationObject
interface IChannelFactory
interface ICommunicationObject
interface IDisposable
Public MustInherit Class ChannelFactory
Inherits CommunicationObject
Implements IChannelFactory, IDisposable
Public MustInherit Class ChannelFactory
Inherits CommunicationObject
Implements IAsyncDisposable, IChannelFactory, IDisposable
- Héritage
- Dérivé
- Implémente
Exemples
L'exemple de code suivant montre comment insérer par programme un comportement client avant la création de l'objet de canal par la fabrique.
public class Client
{
public static void Main()
{
try
{
// Picks up configuration from the config file.
ChannelFactory<ISampleServiceChannel> factory
= new ChannelFactory<ISampleServiceChannel>("WSHttpBinding_ISampleService");
// Add the client side behavior programmatically to all created channels.
factory.Endpoint.Behaviors.Add(new EndpointBehaviorMessageInspector());
ISampleServiceChannel wcfClientChannel = factory.CreateChannel();
// Making calls.
Console.WriteLine("Enter the greeting to send: ");
string greeting = Console.ReadLine();
Console.WriteLine("The service responded: " + wcfClientChannel.SampleMethod(greeting));
Console.WriteLine("Press ENTER to exit:");
Console.ReadLine();
// Done with service.
wcfClientChannel.Close();
Console.WriteLine("Done!");
}
catch (TimeoutException timeProblem)
{
Console.WriteLine("The service operation timed out. " + timeProblem.Message);
Console.Read();
}
catch (FaultException<SampleFault> fault)
{
Console.WriteLine("SampleFault fault occurred: {0}", fault.Detail.FaultMessage);
Console.Read();
}
catch (CommunicationException commProblem)
{
Console.WriteLine("There was a communication problem. " + commProblem.Message);
Console.Read();
}
}
Public Class Client
Public Shared Sub Main()
Try
' Picks up configuration from the config file.
Dim factory As New ChannelFactory(Of ISampleServiceChannel)("WSHttpBinding_ISampleService")
' Add the client side behavior programmatically to all created channels.
factory.Endpoint.Behaviors.Add(New EndpointBehaviorMessageInspector())
Dim wcfClientChannel As ISampleServiceChannel = factory.CreateChannel()
' Making calls.
Console.WriteLine("Enter the greeting to send: ")
Dim greeting As String = Console.ReadLine()
Console.WriteLine("The service responded: " & wcfClientChannel.SampleMethod(greeting))
Console.WriteLine("Press ENTER to exit:")
Console.ReadLine()
' Done with service.
wcfClientChannel.Close()
Console.WriteLine("Done!")
Catch timeProblem As TimeoutException
Console.WriteLine("The service operation timed out. " & timeProblem.Message)
Console.Read()
Catch fault As FaultException(Of SampleFault)
Console.WriteLine("SampleFault fault occurred: {0}", fault.Detail.FaultMessage)
Console.Read()
Catch commProblem As CommunicationException
Console.WriteLine("There was a communication problem. " & commProblem.Message)
Console.Read()
End Try
End Sub
Remarques
Les fabriques de canaux qui implémentent l’interface IChannelFactory et les canaux associés sont généralement utilisées par les initiateurs d’un modèle de communication. Les fabriques d'écouteurs qui implémentent l'interface IChannelListener et les écouteurs associés fournissent les mécanismes avec lesquels les canaux sont acceptés pour les communications.
Cette classe ne fait pas partie du modèle de canal, mais du modèle de service. La méthode CreateFactory offre les moyens de créer IChannelFactory pour un point de terminaison de service. Utilisez-la pour construire un client qui s'accroche à un contrat d'interface sur le service sans avoir recours à des métadonnées ou à une stratégie.
Notes
Affecter à ChannelFactory.Credentials.Windows.AllowedImpersonationLevel
la valeur TokenImpersonationLevel.Anonymous
provoque toujours une ouverture de session anonyme indépendamment du niveau d'emprunt d'identité.
Remarque spéciale destinée aux utilisateurs C++ managés dérivés de cette classe :
Placez votre code de nettoyage dans (On)(Begin)Close (et/ou OnAbort), pas dans un destructeur.
Évitez les destructeurs ; ils provoquent la génération automatique de IDisposable par le compilateur.
Évitez les membres sans référence ; ils peuvent provoquer la génération automatique de IDisposable par le compilateur.
Évitez les finaliseurs ; si vous en incluez un, vous devrez supprimer l'avertissement de génération et appeler SuppressFinalize(Object) et le finaliseur proprement dit à partir de (On)(Begin)Close (et/ou OnAbort) pour émuler ce qui aurait été le comportement IDisposable généré automatiquement.
Lors de l'ajout de comportements par programme, le comportement est ajouté à la propriété Behaviors
appropriée sur le ChannelFactory avant la création de tout canal. Pour obtenir un exemple de code, consultez la section Exemple.
Constructeurs
ChannelFactory() |
Initialise une nouvelle instance de la classe ChannelFactory. |
Propriétés
Credentials |
Obtient les informations d'identification utilisées par les clients pour communiquer un point de terminaison de service sur les canaux générés par la fabrique. |
DefaultCloseTimeout |
Obtient l'intervalle de temps par défaut fourni pour terminer une opération de fermeture. |
DefaultOpenTimeout |
Obtient l'intervalle de temps par défaut fourni pour terminer une opération d'ouverture. |
Endpoint |
Obtient le point de terminaison du service auquel se connectent les canaux générés par la fabrique. |
IsDisposed |
Obtient une valeur qui indique si l'objet de communication a été supprimé. (Hérité de CommunicationObject) |
State |
Obtient une valeur qui indique l'état actuel de l'objet de communication. (Hérité de CommunicationObject) |
ThisLock |
Obtient le verrou mutuellement exclusif qui protège l'instance de classe pendant une transition d'état. (Hérité de CommunicationObject) |
Méthodes
Abort() |
Provoque la transition immédiate d'un objet de communication de son état actuel à l'état de fermeture. (Hérité de CommunicationObject) |
ApplyConfiguration(String) |
Initialise la fabrique de canal avec les comportements fournis par un fichier de configuration spécifié et avec ceux définis dans le point de terminaison du service de la fabrique de canal. |
BeginClose(AsyncCallback, Object) |
Commence une opération asynchrone pour fermer un objet de communication. (Hérité de CommunicationObject) |
BeginClose(TimeSpan, AsyncCallback, Object) |
Commence une opération asynchrone pour fermer un objet de communication avec un délai d'attente spécifié. (Hérité de CommunicationObject) |
BeginOpen(AsyncCallback, Object) |
Commence une opération asynchrone pour ouvrir un objet de communication. (Hérité de CommunicationObject) |
BeginOpen(TimeSpan, AsyncCallback, Object) |
Commence une opération asynchrone pour ouvrir un objet de communication dans un intervalle de temps spécifié. (Hérité de CommunicationObject) |
Close() |
Provoque la transition d'un objet de communication de son état actuel à l'état fermé. (Hérité de CommunicationObject) |
Close(TimeSpan) |
Provoque la transition d'un objet de communication de son état actuel à l'état fermé dans un intervalle de temps spécifié. (Hérité de CommunicationObject) |
CreateDescription() |
En cas d'implémentation dans une classe dérivée, crée une description du point de terminaison du service associée à la fabrique de canal. |
CreateFactory() |
Génère la fabrique de canal pour le point de terminaison actif de la fabrique. |
EndClose(IAsyncResult) |
Termine une opération asynchrone pour fermer un objet de communication. (Hérité de CommunicationObject) |
EndOpen(IAsyncResult) |
Termine une opération asynchrone pour ouvrir un objet de communication. (Hérité de CommunicationObject) |
EnsureOpened() |
Ouvre la fabrique de canal active si elle n'est pas encore ouverte. |
Equals(Object) |
Détermine si l'objet spécifié est égal à l'objet actuel. (Hérité de Object) |
Fault() |
Provoque la transition d'un objet de communication de son état actuel à l'état d'erreur. (Hérité de CommunicationObject) |
GetCommunicationObjectType() |
Obtient le type d'objet de communication. (Hérité de CommunicationObject) |
GetHashCode() |
Fait office de fonction de hachage par défaut. (Hérité de Object) |
GetProperty<T>() |
Retourne l'objet typé demandé (s'il existe) depuis la couche appropriée de la pile des canaux, ou la valeur |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
InitializeEndpoint(Binding, EndpointAddress) |
Initialise le point de terminaison du service de la fabrique de canal avec une liaison et une adresse spécifiées. |
InitializeEndpoint(EndpointAddress) |
Crée et gère les canaux utilisés par les clients pour envoyer des messages aux points de terminaison de service. |
InitializeEndpoint(ServiceEndpoint) |
Initialise le point de terminaison du service de la fabrication de canal avec un point de terminaison spécifié. |
InitializeEndpoint(String, EndpointAddress) |
Initialise le point de terminaison du service de la fabrique de canal avec une adresse et une configuration spécifiées. |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
OnAbort() |
Ferme la fabrication de canal interne de la fabrication de canal active. |
OnBeginClose(TimeSpan, AsyncCallback, Object) |
Amorce une opération de fermeture asynchrone sur la fabrique de canal interne de la fabrique active à laquelle est associé un objet d'état. |
OnBeginOpen(TimeSpan, AsyncCallback, Object) |
Amorce une opération d'ouverture asynchrone sur la fabrique de canal interne de la fabrique active à laquelle est associé un objet d'état. |
OnClose(TimeSpan) |
Appelle la fermeture sur la fabrique de canal interne avec un délai d'attente spécifié pour l'achèvement de l'opération. |
OnCloseAsync(TimeSpan) |
Crée et gère les canaux utilisés par les clients pour envoyer des messages aux points de terminaison de service. |
OnCloseAsync(TimeSpan) |
Crée et gère les canaux utilisés par les clients pour envoyer des messages aux points de terminaison de service. (Hérité de CommunicationObject) |
OnClosed() |
Appelé pendant la transition d'un objet de communication à l'état de fermeture. (Hérité de CommunicationObject) |
OnClosing() |
Appelé pendant la transition d'un objet de communication à l'état de fermeture. (Hérité de CommunicationObject) |
OnEndClose(IAsyncResult) |
Clôture une opération de fermeture asynchrone sur la fabrique de canal interne de la fabrique de canal actuelle. |
OnEndOpen(IAsyncResult) |
Clôture une opération d'ouverture asynchrone sur la fabrique de canal interne de la fabrique de canal actuelle. |
OnFaulted() |
Insère le traitement sur un objet de communication après sa transition vers l’état d’erreur en raison de l’appel d’une opération d’erreur synchrone. (Hérité de CommunicationObject) |
OnOpen(TimeSpan) |
Appelle l'ouverture sur la fabrique de canal interne de la fabrique active avec un délai d'attente spécifié pour l'achèvement de l'opération. |
OnOpenAsync(TimeSpan) |
Crée et gère les canaux utilisés par les clients pour envoyer des messages aux points de terminaison de service. |
OnOpenAsync(TimeSpan) |
Crée et gère les canaux utilisés par les clients pour envoyer des messages aux points de terminaison de service. (Hérité de CommunicationObject) |
OnOpened() |
Initialise une copie en lecture seule de l'objet ClientCredentials pour la fabrique de canal. |
OnOpening() |
Génère la fabrication de canal interne pour le canal actif. |
Open() |
Provoque la transition d'un objet de communication de l'état créé à l'état ouvert. (Hérité de CommunicationObject) |
Open(TimeSpan) |
Provoque la transition d'un objet de communication de l'état créé à l'état ouvert dans un intervalle de temps spécifié. (Hérité de CommunicationObject) |
ThrowIfDisposed() |
Renvoie une exception si l'objet de communication est supprimé. (Hérité de CommunicationObject) |
ThrowIfDisposedOrImmutable() |
Renvoie une exception si la propriété State de l'objet de communication n'a pas pour valeur l'état Created. (Hérité de CommunicationObject) |
ThrowIfDisposedOrNotOpen() |
Renvoie une exception si l'objet de communication n'est pas dans l'état Opened. (Hérité de CommunicationObject) |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |
Événements
Closed |
Se produit lorsqu'un objet de communication passe à l'état fermé. (Hérité de CommunicationObject) |
Closing |
Se produit lorsqu'un objet de communication passe à l'état de fermeture. (Hérité de CommunicationObject) |
Faulted |
Se produit lorsqu'un objet de communication passe à l'état d'erreur. (Hérité de CommunicationObject) |
Opened |
Se produit lorsqu'un objet de communication passe à l'état ouvert. (Hérité de CommunicationObject) |
Opening |
Se produit lorsqu'un objet de communication passe à l'état d'ouverture. (Hérité de CommunicationObject) |
Implémentations d’interfaces explicites
IAsyncCommunicationObject.CloseAsync(TimeSpan) |
Crée et gère les canaux utilisés par les clients pour envoyer des messages aux points de terminaison de service. (Hérité de CommunicationObject) |
IAsyncCommunicationObject.OpenAsync(TimeSpan) |
Crée et gère les canaux utilisés par les clients pour envoyer des messages aux points de terminaison de service. (Hérité de CommunicationObject) |
IAsyncDisposable.DisposeAsync() |
Crée et gère les canaux utilisés par les clients pour envoyer des messages aux points de terminaison de service. |
IDisposable.Dispose() |
Ferme la fabrication de canal active. |
Méthodes d’extension
CloseHelperAsync(ICommunicationObject, TimeSpan) |
Crée et gère les canaux utilisés par les clients pour envoyer des messages aux points de terminaison de service. |
OpenHelperAsync(ICommunicationObject, TimeSpan) |
Crée et gère les canaux utilisés par les clients pour envoyer des messages aux points de terminaison de service. |
GetInternalCloseTimeout(CommunicationObject) |
Crée et gère les canaux utilisés par les clients pour envoyer des messages aux points de terminaison de service. |
ConfigureAwait(IAsyncDisposable, Boolean) |
Configure la façon dont les attentes sur les tâches retournées à partir d’un élément supprimable asynchrone sont effectuées. |
S’applique à
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de l’année 2024, nous abandonnerons progressivement le mécanisme de retour d’information GitHub Issues pour le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultez :Soumettre et afficher des commentaires pour