J'ai mis en place une liste de quelques resources pour écrire un canal de transport WCF qui pourrait être utile. Tous les liens ne sont pas encore actifs, malheureusement, mais la plupart le sont et il y a des trucs utiles là-dedans.
Je mets également un short introduction à la façon dont certaines pièces s'assemblent, ce qui pourrait aider un peu. Quelque chose que je ne comprends pas dans votre question: Vous mentionnez que vous voulez exécuter le HttpBinding sur votre transport. Voulez-vous dire que vous voulez utiliser le canal de transport HTTP de WCF au-dessus de votre API personnalisée de type socket au lieu de l'API Windows sockets standard?
Si oui, alors non, cela ne fonctionnera pas pour diverses raisons. L'une d'entre elles est que les liaisons et les canaux ne sont pas vraiment liés directement. Au lieu de cela, la définition de liaison (c'est-à-dire les éléments de liaison inclus) contrôle la création de la pile de canaux pour votre service/client. Donc, fondamentalement, lorsque vous écrivez votre canal de transport personnalisé, vous allez créer votre propre classe dérivée de TransportBindingElement que vous pouvez utiliser dans une liaison personnalisée pour utiliser votre propre canal de transport au lieu de l'un des canaux par défaut (comme HttpTransport). Cependant, notez qu'un canal de transport est, de toute façon, le bas de la pile de canaux (il n'y a rien en dessous), donc vous ne pouvez pas superposer le HttpTransport au dessus de votre transport personnalisé (même si la limitation de l'API n'était pas là) . En d'autres termes, si vous voulez parler en HTTP, vous aurez besoin de faire cuire le contenu HTTP dans votre implémentation de canal personnalisée. Toutefois, rien ne vous empêche d'utiliser le reste des liaisons http basic/ws par défaut sur votre propre canal, à condition d'exposer les formes de canal appropriées.
très agréable post et des liens! –
ci-dessus le lien ne fonctionne pas. – vikky