Partage via


ChannelFactory Classe

Définition

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 IDisposable
    interface IChannelFactory
    interface ICommunicationObject
    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
ChannelFactory
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 leurs 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 leurs é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 fournit les moyens de créer un IChannelFactory pour un point de terminaison de service. Utilisez-la pour construire un client qui se connecte à un contrat d’interface sur le service sans utiliser de métadonnées ou de stratégie.

Note

Définir ChannelFactory.Credentials.Windows.AllowedImpersonationLevel sur TokenImpersonationLevel.Anonymous entraîne toujours une ouverture de session anonyme, quel que soit le niveau d’emprunt d’identité.

Remarque spéciale pour les utilisateurs C++ managés dérivant de cette classe :

  • Placez votre code de nettoyage dans (On)(Begin)Close (et/ou OnAbort), et non dans un destructeur.

  • Évitez les destructeurs ; ils provoquent la génération automatique du compilateur IDisposable.

  • Évitez les membres non référencés ; ils peuvent entraîner la génération automatique du compilateur IDisposable.

  • Évitez d’utiliser un finaliseur ; mais si vous en incluez un, vous devez supprimer l’avertissement de build et appeler SuppressFinalize(Object) et le finaliseur lui-même de (On)(Begin)Close (et/ou OnAbort) pour émuler ce qui aurait été le comportement de IDisposable généré automatiquement.

Lors de l’ajout de comportements par programmation, le comportement est ajouté à la propriété Behaviors appropriée sur le ChannelFactory avant la création d’un canal. Consultez l’exemple de section d’un exemple de code.

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 produits par la fabrique.

DefaultCloseTimeout

Obtient l’intervalle de temps par défaut fourni pour qu’une opération de fermeture se termine.

DefaultOpenTimeout

Obtient l’intervalle de temps par défaut fourni pour qu’une opération ouverte se termine.

Endpoint

Obtient le point de terminaison de service auquel les canaux générés par la connexion d’usine.

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 vers l’état fermant.

(Hérité de CommunicationObject)
ApplyConfiguration(String)

Initialise la fabrique de canaux avec les comportements fournis par un fichier de configuration spécifié et avec ceux du point de terminaison de service de la fabrique de canaux.

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’expiration 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 vers l’état fermé.

(Hérité de CommunicationObject)
Close(TimeSpan)

Provoque la transition d’un objet de communication de son état actuel vers 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 de service associé à la fabrique de canaux.

CreateFactory()

Génère la fabrique de canaux pour le point de terminaison actuel 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 actuelle 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 vers l’état défectueux.

(Hérité de CommunicationObject)
GetCommunicationObjectType()

Obtient le type d’objet de communication.

(Hérité de CommunicationObject)
GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetProperty<T>()

Retourne l’objet typé demandé, le cas échéant, à partir de la couche appropriée dans la pile de canaux, ou null s’il n’est pas présent.

GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
InitializeEndpoint(Binding, EndpointAddress)

Initialise le point de terminaison de service de la fabrique de canaux avec une liaison et une adresse spécifiées.

InitializeEndpoint(ServiceEndpoint)

Initialise le point de terminaison de service de la fabrique de canaux avec un point de terminaison spécifié.

InitializeEndpoint(String, EndpointAddress)

Initialise le point de terminaison de service de la fabrique de canaux avec une adresse et une configuration spécifiées.

MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
OnAbort()

Termine la fabrique de canal interne de la fabrique de canal actuelle.

OnBeginClose(TimeSpan, AsyncCallback, Object)

Commence une opération de fermeture asynchrone sur la fabrique de canal interne de la fabrique de canal actuelle qui a un objet d’état associé à celui-ci.

OnBeginOpen(TimeSpan, AsyncCallback, Object)

Commence une opération d’ouverture asynchrone sur la fabrique de canal interne de la fabrique de canal actuelle qui a un objet d’état associé à celui-ci.

OnClose(TimeSpan)

Les appels se ferment sur la fabrique de canal interne avec un délai d’attente spécifié pour l’achèvement de l’opération.

OnClosed()

Appelé pendant la transition d’un objet de communication dans l’état fermant.

(Hérité de CommunicationObject)
OnClosing()

Appelé pendant la transition d’un objet de communication dans l’état fermant.

(Hérité de CommunicationObject)
OnEndClose(IAsyncResult)

Termine une opération de fermeture asynchrone sur la fabrique de canal interne de la fabrique de canal actuelle.

OnEndOpen(IAsyncResult)

Termine 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 qu’il passe à l’état défectueux en raison de l’appel d’une opération d’erreur synchrone.

(Hérité de CommunicationObject)
OnOpen(TimeSpan)

Les appels s’ouvrent sur la fabrique de canal interne de la fabrique de canal actuelle avec un délai d’attente spécifié pour l’achèvement de l’opération.

OnOpened()

Initialise une copie en lecture seule de l’objet ClientCredentials pour la fabrique de canaux.

OnOpening()

Génère la fabrique de canal interne pour le canal actuel.

Open()

Provoque la transition d’un objet de communication entre l’état créé et l’état ouvert.

(Hérité de CommunicationObject)
Open(TimeSpan)

Provoque la transition d’un objet de communication entre l’état créé et l’état ouvert dans un intervalle de temps spécifié.

(Hérité de CommunicationObject)
ThrowIfDisposed()

Lève une exception si l’objet de communication est supprimé.

(Hérité de CommunicationObject)
ThrowIfDisposedOrImmutable()

Lève une exception si l’objet de communication de la propriété State n’est pas défini sur l’état Created.

(Hérité de CommunicationObject)
ThrowIfDisposedOrNotOpen()

Lève 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 fermant.

(Hérité de CommunicationObject)
Faulted

Se produit lorsqu’un objet de communication passe à l’état défectueux.

(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

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 fabrique de canal actuelle.

Méthodes d’extension

ConfigureAwait(IAsyncDisposable, Boolean)

Configure la façon dont les attentes sur les tâches retournées à partir d’un jetable asynchrone sont effectuées.

S’applique à