ChannelFactory ChannelFactory ChannelFactory ChannelFactory Class

Définition

Crée et gère les canaux utilisés par les clients pour envoyer des messages aux points de terminaison de service.Creates and manages the channels that are used by clients to send messages to service endpoints.

public ref class ChannelFactory abstract : System::ServiceModel::Channels::CommunicationObject, IDisposable, System::ServiceModel::Channels::IChannelFactory
public abstract class ChannelFactory : System.ServiceModel.Channels.CommunicationObject, IDisposable, System.ServiceModel.Channels.IChannelFactory
type ChannelFactory = class
    inherit CommunicationObject
    interface IChannelFactory
    interface ICommunicationObject
    interface IDisposable
Public MustInherit Class ChannelFactory
Inherits CommunicationObject
Implements 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.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

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.Channel factories that implement the IChannelFactory interface and their associated channels are generally used by the initiators of a communication pattern. 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.Listener factories that implement the IChannelListener interface and their associated listeners provide the mechanisms with which channels are accepted for communications.

Cette classe ne fait pas partie du modèle de canal, mais du modèle de service.This class is not part of the channel model, but of the service model. La méthode CreateFactory offre les moyens de créer IChannelFactory pour un point de terminaison de service.The CreateFactory method provides the means to create an IChannelFactory for a service endpoint. 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.Use it to construct a client that hooks up to an interface contract on the service without using metadata or policy.

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é.Setting ChannelFactory.Credentials.Windows.AllowedImpersonationLevel to TokenImpersonationLevel.Anonymous always results in an anonymous logon regardless of impersonation level.

Remarque spéciale destinée aux utilisateurs C++ managés dérivés de cette classe :Special note for Managed C++ users deriving from this class:

  • Placez votre code de nettoyage dans (On)(Begin)Close (et/ou OnAbort), pas dans un destructeur.Put your cleanup code in (On)(Begin)Close (and/or OnAbort), not in a destructor.

  • Évitez les destructeurs ; ils provoquent la génération automatique de IDisposable par le compilateur.Avoid destructors; they cause the compiler to auto-generate IDisposable.

  • Évitez les membres sans référence ; ils peuvent provoquer la génération automatique de IDisposable par le compilateur.Avoid non-reference members; they can cause the compiler to auto-generate IDisposable.

  • É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.Avoid using a finalizer; but if you include one, you should suppress the build warning and call SuppressFinalize(Object) and the finalizer itself from (On)(Begin)Close (and/or OnAbort) to emulate what would have been the auto-generated IDisposable behavior.

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.

Constructeurs

ChannelFactory() ChannelFactory() ChannelFactory() ChannelFactory()

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

Propriétés

Credentials Credentials Credentials 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.

DefaultCloseTimeout DefaultCloseTimeout DefaultCloseTimeout 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.

DefaultOpenTimeout DefaultOpenTimeout DefaultOpenTimeout 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.

Endpoint Endpoint Endpoint 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.

IsDisposed IsDisposed IsDisposed 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.

(Inherited from CommunicationObject)
State State State 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.

(Inherited from CommunicationObject)
ThisLock ThisLock ThisLock 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.

(Inherited from CommunicationObject)

Méthodes

Abort() Abort() Abort() 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.

(Inherited from CommunicationObject)
ApplyConfiguration(String) ApplyConfiguration(String) ApplyConfiguration(String) 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.

BeginClose(AsyncCallback, Object) BeginClose(AsyncCallback, Object) BeginClose(AsyncCallback, Object) BeginClose(AsyncCallback, Object)

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

(Inherited from CommunicationObject)
BeginClose(TimeSpan, AsyncCallback, Object) BeginClose(TimeSpan, AsyncCallback, Object) BeginClose(TimeSpan, AsyncCallback, Object) 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.

(Inherited from CommunicationObject)
BeginOpen(AsyncCallback, Object) BeginOpen(AsyncCallback, Object) BeginOpen(AsyncCallback, Object) BeginOpen(AsyncCallback, Object)

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

(Inherited from CommunicationObject)
BeginOpen(TimeSpan, AsyncCallback, Object) BeginOpen(TimeSpan, AsyncCallback, Object) BeginOpen(TimeSpan, AsyncCallback, Object) 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.

(Inherited from CommunicationObject)
Close() Close() Close() 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.

(Inherited from CommunicationObject)
Close(TimeSpan) Close(TimeSpan) Close(TimeSpan) 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.

(Inherited from CommunicationObject)
CreateDescription() CreateDescription() CreateDescription() 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.When implemented in a derived class, creates a description of the service endpoint associated with the channel factory.

CreateFactory() CreateFactory() CreateFactory() 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.

EndClose(IAsyncResult) EndClose(IAsyncResult) EndClose(IAsyncResult) EndClose(IAsyncResult)

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

(Inherited from CommunicationObject)
EndOpen(IAsyncResult) EndOpen(IAsyncResult) EndOpen(IAsyncResult) EndOpen(IAsyncResult)

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

(Inherited from CommunicationObject)
EnsureOpened() EnsureOpened() EnsureOpened() 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.

Equals(Object) Equals(Object) Equals(Object) 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.

(Inherited from Object)
Fault() Fault() Fault() 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.

(Inherited from CommunicationObject)
GetCommunicationObjectType() GetCommunicationObjectType() GetCommunicationObjectType() GetCommunicationObjectType()

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

(Inherited from CommunicationObject)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

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

(Inherited from Object)
GetProperty<T>() GetProperty<T>() GetProperty<T>() 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.

GetType() GetType() GetType() GetType()

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

(Inherited from Object)
InitializeEndpoint(Binding, EndpointAddress) InitializeEndpoint(Binding, EndpointAddress) InitializeEndpoint(Binding, EndpointAddress) 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.

InitializeEndpoint(ServiceEndpoint) InitializeEndpoint(ServiceEndpoint) InitializeEndpoint(ServiceEndpoint) 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.

InitializeEndpoint(String, EndpointAddress) InitializeEndpoint(String, EndpointAddress) InitializeEndpoint(String, EndpointAddress) 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.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

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

(Inherited from Object)
OnAbort() OnAbort() OnAbort() OnAbort()

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

OnBeginClose(TimeSpan, AsyncCallback, Object) OnBeginClose(TimeSpan, AsyncCallback, Object) OnBeginClose(TimeSpan, AsyncCallback, Object) 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.

OnBeginOpen(TimeSpan, AsyncCallback, Object) OnBeginOpen(TimeSpan, AsyncCallback, Object) OnBeginOpen(TimeSpan, AsyncCallback, Object) 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.

OnClose(TimeSpan) OnClose(TimeSpan) OnClose(TimeSpan) 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.

OnClosed() OnClosed() OnClosed() 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.

(Inherited from CommunicationObject)
OnClosing() OnClosing() OnClosing() 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.

(Inherited from CommunicationObject)
OnEndClose(IAsyncResult) OnEndClose(IAsyncResult) OnEndClose(IAsyncResult) 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.

OnEndOpen(IAsyncResult) OnEndOpen(IAsyncResult) OnEndOpen(IAsyncResult) 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.

OnFaulted() OnFaulted() OnFaulted() 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.

(Inherited from CommunicationObject)
OnOpen(TimeSpan) OnOpen(TimeSpan) OnOpen(TimeSpan) 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.

OnOpened() OnOpened() OnOpened() 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.

OnOpening() OnOpening() OnOpening() OnOpening()

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

Open() Open() Open() 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.

(Inherited from CommunicationObject)
Open(TimeSpan) Open(TimeSpan) Open(TimeSpan) 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.

(Inherited from CommunicationObject)
ThrowIfDisposed() ThrowIfDisposed() ThrowIfDisposed() ThrowIfDisposed()

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

(Inherited from CommunicationObject)
ThrowIfDisposedOrImmutable() ThrowIfDisposedOrImmutable() ThrowIfDisposedOrImmutable() 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.

(Inherited from CommunicationObject)
ThrowIfDisposedOrNotOpen() ThrowIfDisposedOrNotOpen() ThrowIfDisposedOrNotOpen() 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.

(Inherited from CommunicationObject)
ToString() ToString() ToString() ToString()

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

(Inherited from Object)

Implémentations d’interfaces explicites

IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose()

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

Événements

Closed Closed Closed Closed

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

(Inherited from CommunicationObject)
Closing Closing Closing Closing

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

(Inherited from CommunicationObject)
Faulted Faulted Faulted Faulted

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

(Inherited from CommunicationObject)
Opened Opened Opened Opened

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

(Inherited from CommunicationObject)
Opening Opening Opening Opening

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

(Inherited from CommunicationObject)

S’applique à