2009-08-23 8 views

Répondre

0

C'est la contrepartie de la section <service> du côté du service WCF. Il est principalement utilisé pour configurer les points de terminaison utilisés pour connecter le client et le service ensemble. En d'autres termes, il indique où se connecter au service et quelle liaison utiliser.

Par exemple, si vous avez un service WCF hébergé dans IIS, vous pourriez avoir une section comme ceci:

<system.serviceModel> 
    <services> 
    <service name="MyService"> 
     <endpoint address="http://localhost:8080/MEX" binding="mexHttpBinding" bindingConfiguration="" name="mex" contract="IMetadataExchange" /> 
     <endpoint address="http://localhost:8111" binding="wsHttpBinding" bindingConfiguration="WS_HTTP_Secure" name="WS_HTTP_Endpoint" contract="IMyService" /> 
    </service> 
    </services> 
</system.serviceModel> 

donc du côté client, vous auriez un ensemble correspondant d'entrées pour la section <client>, par exemple

<system.serviceModel> 
    <client> 
    <endpoint address="http://localhost:8111/" binding="wsHttpBinding" 
     bindingConfiguration="WS_HTTP_Endpoint_Binding" contract="MyService" name="WS_HTTP_Endpoint" /> 
    </client> 
</system.serviceModel> 

Il ne devrait généralement pas être nécessaire d'accéder à cette section par programmation. L'ajout de la référence de service à votre projet aurait ajouté les classes de proxy à votre projet, et lors de l'utilisation de ces classes, vous pouvez spécifier le point de terminaison à utiliser. Par exemple dire que vous avez appelé vos classes de service « MyService », vous pouvez initialiser comme ceci:

MyServicesClient client = new MyServicesClient("WS_HTTP_Endpoint"); 

Il n'y a pas besoin de spécifier réellement dans le constructeur comme celui-ci, sauf si vous avez plusieurs points de terminaison bien.

0

En ajoutant des références à l'assemblée System.Configuration, vous pouvez également charger la section <client> en mémoire si nécessaire, et d'examiner là:

using System.Configuration; 
using System.ServiceModel.Configuration; 

..... 

ClientSection clientSection = 
    (ClientSection)ConfigurationManager.GetSection("system.serviceModel/client"); 

Mais généralement, vous n'utiliser l'approche décrite par Gavin Schultz - Laissez le ServiceModel gérer la lecture et l'interprétation de la section et vous donner un proxy client à utiliser pour appeler votre service.

Marc