Quelle est la meilleure façon de transmettre des données d’une application Windows Forms (un plugin Office) à une autre (exe écrite en C #) en C #?
Je vais prendre un coup de fouet à ce sujet et dire que vous voulez probablement que l’application bureautique à la maison à votre exe? Dans ce contexte, le “exe” est le serveur et l’application bureautique est le client.
Si vous utilisez .NET 3.0, WCF est probablement votre meilleur pari. Je structurerais la solution en trois parties:
Tant le “exe” que le “plugin” nécessiteront des fichiers de configuration définissant les liaisons.
Lorsque vous souhaitez transmettre des données entre client et serveur, votre client crée un object à partir de l’assembly “Contrats partagés” et le transmet au client du service. Le fichier de configuration du client déterminera où envoyer les données.
Pour un didacticiel détaillé sur la création d’un service WCF de base, consultez ce didacticiel .
Communication interprocessus dans .NET
Ouaip. WCF est la voie à suivre. Je recommande de vérifier iDesign.net pour utiliser la classe InProcFactory. Vous pouvez modifier votre classe de bureau en un service et appeler votre autre application hébergeant un service. L’autre service peut alors rappeler le service basé sur le bureau.
Vous pouvez utiliser un sharepoint terminaison IPC pour rendre la communication dynamic.
-Scott
WCF est l’un des moyens les plus simples pour y parvenir. Vous pouvez enregistrer un sharepoint terminaison de service dans chaque application ou, si l’un est le service et un autre le client, vous pouvez simplement utiliser un seul hôte de service.
Consultez les didacticiels pour commencer.
Il y a de nombreuses façons d’y parvenir. J’ai utilisé des pipes nommées dans le passé. La prise en charge des canaux nommés est désormais intégrée dans .NET (conformément à la version 3.0?), Elle est donc assez simple.
old-school mais ça marche – utiliser WM_COPYDATA pour envoyer des messages entre les applications Windows