2011-05-19 6 views
2

J'ai un service WCF (utilisant la liaison HTTP) que nos applications WinForm et WFP peuvent utiliser sans problème. Nous avons un développeur Silverlight 4 qui dit qu'il ne peut pas utiliser le service WCF car il doit être "reconfiguré" pour l'utilisation de Silverlight. Je ne sais pas si c'est vrai ou pas, parce que je ne sais rien à propos de Silverlight.Silverlight 4 et WCF

Donc, ma question est la suivante. Un service WCF utilisant la liaison HTTP, qui est utilisé avec succès par nos applications WinForms et WPF, peut-il également être utilisé par les applications Silverlight, sans modifier ni reconfigurer le service WCF?

Répondre

2

Silverlight 4 prend en charge les liaisons suivantes:

  • BasicHttpBinding

  • PollingDuplexHttpBinding

  • CustomBinding (avec un sous-ensemble d'éléments de fixation)

Silverlight and WCF Feature Comparison:

Il existe plusieurs façons d'utiliser la pile client WCF pour accéder à un service.

Il est utilisé lors de l'appel des services par générés automatiquement procurations, comme décrit dans Comment: accès à un service de Silverlight. Le proxy doit être généré dans cette procédure en utilisant l'outil de référence Add Service dans Visual Studio 2010 pour le projet Silverlight.

Attention:

proxies générés à l'aide du Fonds de roulement outil Svcutil.exe ne fonctionne pas dans Silverlight 4. Utilisez l'outil SLsvcutil.exe à la place. Pour plus d'informations sur l'utilisation de cet outil Silverlight, voir en utilisant SLsvcUtil.exe pour accéder à un service .

Si vous avez déjà une définition du contrat de service Communication Foundation (WCF) de Windows , vous pouvez utiliser la classe ChannelFactory générique sans avoir à générer un proxy. Cela peut être le cas, par exemple, si votre client partage le code de définition de service avec le projet sur le serveur. Dans ce cas, vous pouvez, par exemple, définir une interface de contrat de service IStockQuoteService, puis utiliser le même code IStockQuoteService dans les projets serveur et Silverlight à la fois . Cela impliquerait l'utilisation d'une ChannelFactory . Cette technique avancée est démontrée dans Comment: appeler Opérations de manière asynchrone en utilisant un Channel Factory et dans le contexte Silverlight 4 avec Building et Access Duplex Services.Pour plus d'informations sur la définition et l'utilisation des contrats de service , voir Conception du service Contrats.