Bibliothèque de classes .NET Framework
ServiceContractAttribute..::.CallbackContract, propriété

Mise à jour : novembre 2007

Obtient ou définit le type de contrat de rappel lorsque le contrat est un contrat duplex.

Espace de noms :  System.ServiceModel
Assembly :  System.ServiceModel (dans System.ServiceModel.dll)
Syntaxe

Visual Basic (Déclaration)
Public Property CallbackContract As Type
Visual Basic (Utilisation)
Dim instance As ServiceContractAttribute
Dim value As Type

value = instance.CallbackContract

instance.CallbackContract = value
C#
public Type CallbackContract { get; set; }
VisualC++
public:
property Type^ CallbackContract {
    Type^ get ();
    void set (Type^ value);
}
J#
/** @property */
public Type get_CallbackContract()
/** @property */
public  void set_CallbackContract(Type value)
JScript
public function get CallbackContract () : Type
public function set CallbackContract (value : Type)

Valeur de propriété

Type : System..::.Type
Type qui indique le contrat de rappel. La valeur par défaut est nullNothingnullptrune référence null (Nothing en Visual Basic).
Notes

Spécifiez une interface dans la propriété CallbackContract qui représente le contrat opposé requis dans un échange de messages bidirectionnel (ou duplex). Cela permet aux applications clientes d'écouter les appels d'opération entrants que l'application de service côté serveur peut envoyer indépendamment des activités clientes. Les contrats de rappel qui ont des opérations unidirectionnelles représentent les appels du service que le client peut gérer.

ms575923.alert_note(fr-fr,VS.90).gifRemarque :

L'attribut ServiceContractAttribute est ignoré sur les contrats de rappel. Pour configurer le comportement d'exécution des objets de rappel, utilisez la System.ServiceModel..::.CallbackBehaviorAttribute.

Exemples

L'exemple de code suivant présente un service qui spécifie un contrat de rappel. Il indique qu'un service de type IDuplexHello doit avoir un correspondant qui implémente un service de type IHelloCallbackContract. De plus, IHelloCallbackContract implémente une méthode de rappel unidirectionnelle, ce qui permet au service d'appeler le client sans attendre une réponse pour prendre en charge un client distribué et piloté par des événements.

C#
using System;
using System.Collections.Generic;
using System.ServiceModel;
using System.Threading;

namespace Microsoft.WCF.Documentation
{
  [ServiceContract(
    Name = "SampleDuplexHello",
    Namespace = "http://microsoft.wcf.documentation",
    CallbackContract = typeof(IHelloCallbackContract),
    SessionMode = SessionMode.Required
  )]
  public interface IDuplexHello
  {
    [OperationContract(IsOneWay = true)]
    void Hello(string greeting);
  }

  public interface IHelloCallbackContract
  {
    [OperationContract(IsOneWay = true)]
    void Reply(string responseToGreeting);
  }

  public class DuplexHello : IDuplexHello
  {
    public DuplexHello()
    {
      Console.WriteLine("Service object created: " + this.GetHashCode().ToString());
    }

    ~DuplexHello()
    {
      Console.WriteLine("Service object destroyed: " + this.GetHashCode().ToString());
    }

    public void Hello(string greeting)
    {
      Console.WriteLine("Caller sent: " + greeting);
      Console.WriteLine("Session ID: " + OperationContext.Current.SessionId);
      Console.WriteLine("Waiting two seconds before returning call.");
      // Put a slight delay to demonstrate asynchronous behavior on client.
      Thread.Sleep(2000);
      IHelloCallbackContract callerProxy
        = OperationContext.Current.GetCallbackChannel<IHelloCallbackContract>();
      string response = "Service object " + this.GetHashCode().ToString() + " received: " + greeting;
      Console.WriteLine("Sending back: " + response);
      callerProxy.Reply(response);
    }
  }
}
Autorisations

Plateformes

Windows Vista, Windows XP SP2, Windows Server 2003

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Informations de version

.NET Framework

Pris en charge dans : 3.5, 3.0
Voir aussi

Référence

Mots clés :


Page view tracker