En continuant à apprendre WCF, j'essaye d'écrire un petit programme qui, avec un clic d'un bouton, prendrait le travail de texbox1, le passerait à ServiceContract et récupérerait sa longueur.se connecter à ServiceContract?
Voici jusqu'où j'ai pu aller.
Form1.cs:
...
wcfLib.Service myService = new wcfLib.Service();
private void button1_Click(object sender, EventArgs e)
{
textBox2.Text = Convert.ToString(myService.go(textBox1.Text));
}
...
et le fichier WCF:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
namespace wcfLib
{
[ServiceContract]
public interface IfaceService
{
[OperationContract]
int wordLen(string word);
}
public class StockService : IfaceService
{
public int wordLen(string word)
{
return word.Length;
}
}
public class Service
{
public int go(string wordin)
{
ServiceHost serviceHost = new ServiceHost(typeof(StockService), new Uri("http://localhost:8000/wcfLib"));
serviceHost.AddServiceEndpoint(typeof(IfaceService), new BasicHttpBinding(), "");
serviceHost.Open();
int ret = **///// HOW SHOULD I PASS wordin TO StockService to get word.Length in return?**
serviceHost.Close();
return ret;
}
}
}
ce que je ne peux pas comprendre en ce moment, est comment puis-je passer la variable wordin ci-dessus dans le ServiceContract?
Comprenez-vous ce que WCF est supposé faire? Dans la méthode Go, vous avez hébergé le service, mais dans la même méthode, vous voulez être un client de ce service. Pourquoi?Si vous voulez apprendre WCF créer deux traitées et la communication entre eux. Cela n'a pas de sens que vous pouvez simplement créer une instance de StockService directement et appeler wordLen sans l'héberger dans WCF. –
>>> Comprenez-vous ce que la WCF est censée faire? Vraiment, pas beaucoup. :(Je comprends ce qu'est un ServiceContract et comment il peut accéder à une sorte de fonction à partir de l'interface, mais je n'arrive pas à comprendre comment le diviser en différentes applications qui se transmettent des données ... – Rob
Essayez de passer par ce tutoriel: http://msdn.microsoft.com/en-us/library/ms734712.aspx –