2010-06-16 3 views
1

J'ai créé un service WCF, qui fonctionne correctement, maintenant je veux le consommer dans une application cliente. en utilisant SVCutil.exe j'ai généré proxy et aap.settings pour ce service et ajouté cela au client sln (application console)Comment appeler les méthodes wcf à partir du proxy client

Mais le problème est que je suis incapable d'accéder aux méthodes wcf.

 using System.ServiceModel; 

      namespace WCFClient 
        { 
        class Program 
        { 
        static void Main(string[] args) 
        { 

          Program p = new Program(); 
         p. // not getting the wcf methods 

        } 
        } 
        } 

ce que je fais mal?

Répondre

1

Dépend de la façon dont votre service est appelé. Lorsque vous avez créé la référence de service, vous lui avez donné un nom d'espace de nom - dans cet espace de noms, il devrait y avoir une classe appelée (yourservicename) Client - instantiante l'une d'entre elles et y arriver. Vous devriez trouver ces fichiers sous la référence de service - si vous cliquez sur le bouton "afficher tous les fichiers" dans l'Explorateur de solutions, vous commencerez à voir une tonne de fichiers sous votre référence de service - en particulier Reference.cs . Ces classes sont définies dans ce fichier - vous pouvez le vérifier, c'est un fichier C# normal.

Mise à jour: Si vous créez votre proxy à l'aide svcutil.exe, en fonction de vos options utilisées avec svcutil, vous devriez également obtenir un fichier .cs qui contient les classes nécessaires.

svcutil http://yourserver/yourservice 

créerait un fichier appelé (your WSDL name).cs et un output.config dans ce répertoire où vous exécutez cette commande.

Vous pouvez également spécifier un nom de fichier pour le fichier C#:

svcutil http://yourserver/yourservice /out:MyService.cs 

puis votre fichier est appelé MyService.cs.

SvcUtil a un ton d'options - ne peut pas vous les expliquer tous, jouer avec eux, lire sur les documents MSDN pour cela.

Encore une fois, l'un d'entre eux sera appelé (your service name)Client. Incluez ce fichier * .cs dans votre projet, vérifiez l'espace de noms, créez une instance de la classe .....Client et utilisez-la pour appeler le service WCF.

Exemple:

  • Grab informations du URL

    svcutil http://www.ecubicle.net/iptocountry.asmx?wsdl /out:IP2CountryClient.cs 
    
  • Inclure le résultat IP2CountryClient.cs dans votre projet; par défaut, les classes dans ce fichier sont en aucun espace de nom particulier, ils sont donc visibles globalement

  • instancier la classe client iptocountrySoapClient

    iptocountrySoapClient client = new iptocountrySoapClient(); 
    
  • méthodes d'appel - par exemplecelui-ci ici:

    string result = client.FindCountryAsString("82.82.82.82"); 
    
+0

obtenir u ..my na pas question est quand je crée proxy à l'aide svcutil.exe, quela cas comment accéder aux méthodes WCF. Si je fais un ajout de service ref les choses vont bien, mais quelles sont les étapes dans le cas de svcutil.exe généré proxy – Cloud2010

+0

@ Cloud2010: ajouté une mise à jour pour svcutil.exe –

+0

oui .. il fonctionne maintenant.Merci marc_s – Cloud2010

Questions connexes