2013-01-14 2 views

Répondre

3

Une référence de service dans Visual Studio n'est rien d'autre qu'un générateur de code qui crée une classe proxy avec les éléments de données correspondants nécessaires pour appeler votre service Web. Bien sûr, vous pouvez construire un proxy si vous voulez vraiment passer un travail fastidieux et ennuyeux.

Peut-être commencer par décompiler System.ServiceModel.ClientBase à l'aide du réflecteur .net?

faire des recherches sur ChannelFactory: http://msdn.microsoft.com/en-us/library/system.servicemodel.channelfactory.aspx

Même si la mise en œuvre de mon propre client en enroulant une ChannelFactory, je suis encore en utilisant la référence Ajouter un service dans un autre projet pour créer les définitions de classe et de les déplacer dans le vrai projet. C'est un bon compromis.

est ici une simple interface de service async:

[ServiceContract(Name = "IService")] 
public interface IServiceAsync 
{ 
    [OperationContract(AsyncPattern = true)] 
    IAsyncResult BeginGetStuff(string someData, AsyncCallback callback, object state); 

    IEnumerable<Stuff> EndGetStuff(IAsyncResult result); 
} 

Le contrat .NET pourrait ressembler à ceci:

[ServiceContract] 
public interface IService 
{ 
    [OperationContract] 
    IEnumerable<Stuff> GetStuff(string someData); 
} 

Ensuite, dans le code, en supposant utilisez HTTP, Pas de sécurité et le codage binaire des messages, quelque chose comme ceci (désolé je n'ai pas compilé tout cela, juste tapé en utilisant une partie du code que j'ai écrit pour les projets):

Questions connexes