2017-08-03 3 views
0

J'ai un service WCF avec des rappels. Je veux créer un client, MAIS je veux le faire automatiquement en utilisant "Ajouter une référence de service" dans Visual Studio. Je suis capable de découvrir le service et de l'ajouter. Je peux aussi mettre à jour la référence de service. Donc c'est là. Le problème est avec la création d'un client.Comment ajouter une référence de service WCF pour le service duplex?

Si le nom du service est (dans les références de service) "MyService", créant alors un client pour un service normal (non-rappel) serait:

var myService = new MyServiceClient(); 
var data = myService.GetData(); 
myService.Close(); 

Mais Comment puis-je faire si le service implémente l'interface de rappel? Je dois ajouter un contexte comme paramètre pour le client, comme ceci:

InstanceContext context = new InstanceContext(????); 
var myService = new MyServiceClient(context); 
var data = myService.GetData(); 
myService.Close(); 

mais! Je dois passer un client qui implémente l'interface de rappel dans InstanceContext. Est-il possible d'ajouter rapidement un client pour le service wcf avec des rappels?

Merci pour votre aide!

Répondre

1

Vous devez créer un gestionnaire de rappel:

public class MyServiceCallbackHandler : IMyServiceCallback 
{ 
    public void Result(Data data) 
    { 
    } 
} 

et le transmettre à InstanceContext:

InstanceContext context = new InstanceContext(new MyServiceCallbackHandler()); 
var myService = new MyServiceClient(context); 
var data = myService.GetData(); 
myService.Close();