ChannelFactory<TChannel> Classe

Définition

Une fabrique qui crée des canaux de types différents utilisés par les clients pour envoyer des messages à des points de terminaison de service configurés différemment.A factory that creates channels of different types that are used by clients to send messages to variously configured service endpoints.

generic <typename TChannel>
public ref class ChannelFactory : System::ServiceModel::ChannelFactory, System::ServiceModel::Channels::IChannelFactory<TChannel>
public class ChannelFactory<TChannel> : System.ServiceModel.ChannelFactory, System.ServiceModel.Channels.IChannelFactory<TChannel>
type ChannelFactory<'Channel> = class
    inherit ChannelFactory
    interface IChannelFactory<'Channel>
    interface IChannelFactory
    interface ICommunicationObject
Public Class ChannelFactory(Of TChannel)
Inherits ChannelFactory
Implements IChannelFactory(Of TChannel)

Paramètres de type

TChannel

Type de canal produit par la fabrique de canal.The type of channel produced by the channel factory. Ce type doit être IOutputChannel ou IRequestChannel.This type must be either IOutputChannel or IRequestChannel.

Héritage
ChannelFactory<TChannel>
Dérivé
Implémente

Exemples

L'exemple suivant montre comment créer une fabrication de canal et l'utiliser pour créer et gérer des canaux.The following sample shows how to create a channel factory and use it to create and manage channels.

    BasicHttpBinding binding = new BasicHttpBinding();
    EndpointAddress address = new EndpointAddress("http://localhost:8000/ChannelApp");

    ChannelFactory<IRequestChannel> factory =
        new ChannelFactory<IRequestChannel>(binding, address);

    IRequestChannel channel = factory.CreateChannel();
    channel.Open();
    Message request = Message.CreateMessage(MessageVersion.Soap11, "hello");
    Message reply = channel.Request(request);
    Console.Out.WriteLine(reply.Headers.Action);
    reply.Close();
    channel.Close();
    factory.Close();
}	   

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.The following code example shows how to insert programmatically a client behavior prior to the creation of the channel object by the factory.

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

Cette classe générique active plus de scénarios avancés là où la création d’une fabrique de canal qui peut être utilisée pour créer plusieurs types de canaux est nécessaire.This generic class enables more advanced scenarios where there is a requirement to create a channel factory that can be used to create more than one type of channel.

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.When adding behaviors programmatically, the behavior is added to the appropriate Behaviors property on the ChannelFactory prior to the creation of any channel. Pour obtenir un exemple de code, consultez la section Exemple.See the example section for a code sample.

Souvent, les applications clientes ou appelantes (par exemple, les applications de couche intermédiaire sont également des applications clientes) qui utilisent ce type ont également des besoins en gestion des états et des performances complexes.Frequently client or calling applications (for example, middle-tier applications are client applications, too) using this type also have complex state management needs as well as performance needs. Pour plus d’informations sur ces scénarios, consultez applications clientes de niveau intermédiaire.For more information about these scenarios, please see Middle-Tier Client Applications.

Constructeurs

ChannelFactory<TChannel>()

Initialise une nouvelle instance de la classe ChannelFactory<TChannel>.Initializes a new instance of the ChannelFactory<TChannel> class.

ChannelFactory<TChannel>(Binding)

Initialise une nouvelle instance de la classe ChannelFactory<TChannel>.Initializes a new instance of the ChannelFactory<TChannel> class.

ChannelFactory<TChannel>(Binding, EndpointAddress)

Initialise une nouvelle instance de la classe ChannelFactory<TChannel> avec une liaison et une adresse de point de terminaison spécifiés.Initializes a new instance of the ChannelFactory<TChannel> class with a specified binding and endpoint address.

ChannelFactory<TChannel>(Binding, String)

Initialise une nouvelle instance de la classe ChannelFactory<TChannel> avec une liaison et une adresse distante spécifiés.Initializes a new instance of the ChannelFactory<TChannel> class with a specified binding and remote address.

ChannelFactory<TChannel>(ServiceEndpoint)

Initialise une nouvelle instance de la classe ChannelFactory<TChannel> qui produit des canaux avec un point de terminaison spécifié.Initializes a new instance of the ChannelFactory<TChannel> class that produces channels with a specified endpoint.

ChannelFactory<TChannel>(String)

Initialise une nouvelle instance de la classe ChannelFactory<TChannel> avec un nom de configuration de point de terminaison spécifié.Initializes a new instance of the ChannelFactory<TChannel> class with a specified endpoint configuration name.

ChannelFactory<TChannel>(String, EndpointAddress)

Initialise une nouvelle instance de la classe ChannelFactory<TChannel> associée à un nom spécifié pour la configuration de point de terminaison et l'adresse distante.Initializes a new instance of the ChannelFactory<TChannel> class associated with a specified name for the endpoint configuration and remote address.

ChannelFactory<TChannel>(Type)

Initialise une nouvelle instance de la classe ChannelFactory<TChannel>.Initializes a new instance of the ChannelFactory<TChannel> class.

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.Gets the credentials used by clients to communicate a service endpoint over the channels produced by the factory.

(Hérité de ChannelFactory)
DefaultCloseTimeout

Obtient l'intervalle de temps par défaut fourni pour terminer une opération de fermeture.Gets the default interval of time provided for a close operation to complete.

(Hérité de ChannelFactory)
DefaultOpenTimeout

Obtient l'intervalle de temps par défaut fourni pour terminer une opération d'ouverture.Gets the default interval of time provided for an open operation to complete.

(Hérité de ChannelFactory)
Endpoint

Obtient le point de terminaison du service auquel se connectent les canaux générés par la fabrique.Gets the service endpoint to which the channels produced by the factory connect.

(Hérité de ChannelFactory)
IsDisposed

Obtient une valeur qui indique si l'objet de communication a été supprimé.Gets a value that indicates whether the communication object has been disposed.

(Hérité de CommunicationObject)
State

Obtient une valeur qui indique l'état actuel de l'objet de communication.Gets a value that indicates the current state of the communication object.

(Hérité de CommunicationObject)
ThisLock

Obtient le verrou mutuellement exclusif qui protège l'instance de classe pendant une transition d'état.Gets the mutually exclusive lock that protects the class instance during a state transition.

(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.Causes a communication object to transition immediately from its current state into the closing state.

(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.Initializes the channel factory with the behaviors provided by a specified configuration file and with those in the service endpoint of the channel factory.

(Hérité de ChannelFactory)
BeginClose(AsyncCallback, Object)

Commence une opération asynchrone pour fermer un objet de communication.Begins an asynchronous operation to close a communication object.

(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é.Begins an asynchronous operation to close a communication object with a specified timeout.

(Hérité de CommunicationObject)
BeginOpen(AsyncCallback, Object)

Commence une opération asynchrone pour ouvrir un objet de communication.Begins an asynchronous operation to open a communication object.

(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é.Begins an asynchronous operation to open a communication object within a specified interval of time.

(Hérité de CommunicationObject)
Close()

Provoque la transition d'un objet de communication de son état actuel à l'état fermé.Causes a communication object to transition from its current state into the closed state.

(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é.Causes a communication object to transition from its current state into the closed state within a specified interval of time.

(Hérité de CommunicationObject)
CreateChannel()

Crée un canal d'un type spécifié à une adresse de point de terminaison spécifiée.Creates a channel of a specified type to a specified endpoint address.

CreateChannel(Binding, EndpointAddress)

Crée un canal d’un type spécifié utilisé pour envoyer des messages à un point de terminaison de service configuré avec une liaison spécifiée.Creates a channel of a specified type that is used to send messages to a service endpoint that is configured with a specified binding.

CreateChannel(Binding, EndpointAddress, Uri)

Crée un canal d’un type spécifié utilisé pour envoyer des messages à un point de terminaison de service à une adresse de transport spécifiée configurée avec une liaison spécifiée.Creates a channel of a specified type that is used to send messages to a service endpoint at a specified transport address that is configured with a specified binding.

CreateChannel(EndpointAddress)

Crée un canal utilisé pour envoyer des messages à un service à une adresse de point de terminaison spécifique.Creates a channel that is used to send messages to a service at a specific endpoint address.

CreateChannel(EndpointAddress, Uri)

Crée un canal utilisé pour envoyer des messages à un service à une adresse de point de terminaison spécifique via une adresse de transport spécifiée.Creates a channel that is used to send messages to a service at a specific endpoint address through a specified transport address.

CreateChannel(String)

Crée un canal utilisé pour envoyer des messages à un service dont le point de terminaison est configuré de façon spécifiée.Creates a channel that is used to send messages to a service whose endpoint is configured in a specified way.

CreateChannelWithActAsToken(SecurityToken)

Crée un canal utilisé pour envoyer des messages à un service agissant comme un jeton de sécurité.Creates a channel that is used to send messages to a service with an act as security token.

CreateChannelWithActAsToken(SecurityToken, EndpointAddress)

Crée un canal utilisé pour envoyer des messages à un service agissant comme un jeton de sécurité à une adresse de point de terminaison spécifique.Creates a channel that is used to send messages to a service with an act as security token at a specific endpoint address.

CreateChannelWithActAsToken(SecurityToken, EndpointAddress, Uri)

Crée un canal utilisé pour envoyer des messages à un service agissant comme un jeton de sécurité à une adresse de point de terminaison spécifique via une adresse de transport spécifiée.Creates a channel that is used to send messages to a service with an act as security token at a specific endpoint address through a specified transport address.

CreateChannelWithIssuedToken(SecurityToken)

Crée un canal utilisé pour envoyer des messages à un service agissant comme un jeton de sécurité émis.Creates a channel that is used to send messages to a service with an issued security token.

CreateChannelWithIssuedToken(SecurityToken, EndpointAddress)

Crée un canal utilisé pour envoyer des messages à un service avec un jeton de sécurité émis à une adresse de point de terminaison spécifique.Creates a channel that is used to send messages to a service with an issued security token at a specific endpoint address.

CreateChannelWithIssuedToken(SecurityToken, EndpointAddress, Uri)

Crée un canal utilisé pour envoyer des messages à un service avec un jeton de sécurité émis à une adresse de point de terminaison spécifique via une adresse de transport spécifiée.Creates a channel that is used to send messages to a service with an issued security token at a specific endpoint address through a specified transport address.

CreateChannelWithOnBehalfOfToken(SecurityToken)

Crée un canal utilisé pour envoyer des messages à un service agissant pour le compte d'un jeton de sécurité.Creates a channel that is used to send messages to a service with an on behalf of security token.

CreateChannelWithOnBehalfOfToken(SecurityToken, EndpointAddress)

Crée un canal utilisé pour envoyer des messages à un service agissant pour le compte d'un jeton de sécurité à une adresse de point de terminaison spécifique.Creates a channel that is used to send messages to a service with an on behalf of security token at a specific endpoint address.

CreateChannelWithOnBehalfOfToken(SecurityToken, EndpointAddress, Uri)

Crée un canal utilisé pour envoyer des messages à un service agissant pour le compte du jeton de sécurité à une adresse de point de terminaison spécifique via une adresse de transport spécifiée.Creates a channel that is used to send messages to a service with an on behalf of security token at a specific endpoint address through a specified transport address.

CreateDescription()

Crée une description du point de terminaison de service.Creates a description of the service endpoint.

CreateFactory()

Génère la fabrique de canal pour le point de terminaison actif de la fabrique.Builds the channel factory for the current endpoint of the factory.

(Hérité de ChannelFactory)
EndClose(IAsyncResult)

Termine une opération asynchrone pour fermer un objet de communication.Completes an asynchronous operation to close a communication object.

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

Termine une opération asynchrone pour ouvrir un objet de communication.Completes an asynchronous operation to open a communication object.

(Hérité de CommunicationObject)
EnsureOpened()

Ouvre la fabrique de canal active si elle n'est pas encore ouverte.Opens the current channel factory if it is not yet opened.

(Hérité de ChannelFactory)
Equals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.Determines whether the specified object is equal to the current object.

(Hérité de Object)
Fault()

Provoque la transition d'un objet de communication de son état actuel à l'état d'erreur.Causes a communication object to transition from its current state into the faulted state.

(Hérité de CommunicationObject)
GetCommunicationObjectType()

Obtient le type d'objet de communication.Gets the type of communication object.

(Hérité de CommunicationObject)
GetHashCode()

Fait office de fonction de hachage par défaut.Serves as the default hash function.

(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 null si l'objet est absent.Returns the typed object requested, if present, from the appropriate layer in the channel stack, or null if not present.

(Hérité de ChannelFactory)
GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(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.Initializes the service endpoint of the channel factory with a specified binding and address.

(Hérité de ChannelFactory)
InitializeEndpoint(ServiceEndpoint)

Initialise le point de terminaison du service de la fabrication de canal avec un point de terminaison spécifié.Initializes the service endpoint of the channel factory with a specified endpoint.

(Hérité de ChannelFactory)
InitializeEndpoint(String, EndpointAddress)

Initialise le point de terminaison du service de la fabrique de canal avec une adresse et une configuration spécifiées.Initializes the service endpoint of the channel factory with a specified address and configuration.

(Hérité de ChannelFactory)
MemberwiseClone()

Crée une copie superficielle de l'objet Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
OnAbort()

Ferme la fabrication de canal interne de la fabrication de canal active.Terminates the inner channel factory of the current channel factory.

(Hérité de ChannelFactory)
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.Begins an asynchronous close operation on the inner channel factory of the current channel factory that has a state object associated with it.

(Hérité de ChannelFactory)
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.Begins an asynchronous open operation on the inner channel factory of the current channel factory that has a state object associated with it.

(Hérité de ChannelFactory)
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.Calls close on the inner channel factory with a specified time-out for the completion of the operation.

(Hérité de ChannelFactory)
OnClosed()

Appelé pendant la transition d'un objet de communication à l'état de fermeture.Invoked during the transition of a communication object into the closing state.

(Hérité de CommunicationObject)
OnClosing()

Appelé pendant la transition d'un objet de communication à l'état de fermeture.Invoked during the transition of a communication object into the closing state.

(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.Completes an asynchronous close operation on the inner channel factory of the current channel factory.

(Hérité de ChannelFactory)
OnEndOpen(IAsyncResult)

Clôture une opération d'ouverture asynchrone sur la fabrique de canal interne de la fabrique de canal actuelle.Completes an asynchronous open operation on the inner channel factory of the current channel factory.

(Hérité de ChannelFactory)
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.Inserts processing on a communication object after it transitions to the faulted state due to the invocation of a synchronous fault operation.

(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.Calls open on the inner channel factory of the current channel factory with a specified time-out for the completion of the operation.

(Hérité de ChannelFactory)
OnOpened()

Initialise une copie en lecture seule de l'objet ClientCredentials pour la fabrique de canal.Initializes a read-only copy of the ClientCredentials object for the channel factory.

(Hérité de ChannelFactory)
OnOpening()

Génère la fabrication de canal interne pour le canal actif.Builds the inner channel factory for the current channel.

(Hérité de ChannelFactory)
Open()

Provoque la transition d'un objet de communication de l'état créé à l'état ouvert.Causes a communication object to transition from the created state into the opened state.

(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é.Causes a communication object to transition from the created state into the opened state within a specified interval of time.

(Hérité de CommunicationObject)
ThrowIfDisposed()

Renvoie une exception si l'objet de communication est supprimé.Throws an exception if the communication object is disposed.

(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.Throws an exception if the communication object the State property is not set to the Created state.

(Hérité de CommunicationObject)
ThrowIfDisposedOrNotOpen()

Renvoie une exception si l'objet de communication n'est pas dans l'état Opened.Throws an exception if the communication object is not in the Opened state.

(Hérité de CommunicationObject)
ToString()

Retourne une chaîne qui représente l'objet actuel.Returns a string that represents the current object.

(Hérité de Object)

Événements

Closed

Se produit lorsqu'un objet de communication passe à l'état fermé.Occurs when a communication object transitions into the closed state.

(Hérité de CommunicationObject)
Closing

Se produit lorsqu'un objet de communication passe à l'état de fermeture.Occurs when a communication object transitions into the closing state.

(Hérité de CommunicationObject)
Faulted

Se produit lorsqu'un objet de communication passe à l'état d'erreur.Occurs when a communication object transitions into the faulted state.

(Hérité de CommunicationObject)
Opened

Se produit lorsqu'un objet de communication passe à l'état ouvert.Occurs when a communication object transitions into the opened state.

(Hérité de CommunicationObject)
Opening

Se produit lorsqu'un objet de communication passe à l'état d'ouverture.Occurs when a communication object transitions into the opening state.

(Hérité de CommunicationObject)

Implémentations d’interfaces explicites

IDisposable.Dispose()

Ferme la fabrique de canal active.Closes the current channel factory.

(Hérité de ChannelFactory)

S’applique à

Cohérence de thread

Ce type est thread-safe.This type is thread safe.