2010-01-14 4 views
0

J'ai cherché pendant un certain temps une réponse à mon problème, mais jusqu'à présent, je n'ai trouvé aucun lien fiable. Ce que j'essaye de faire est ceci: J'ai construit une application d'interface graphique de Windows .NET. J'aimerais pouvoir accéder aux fonctionnalités des contrôles de formulaire via un service Web. Y a-t-il de bons liens sur la façon de faire cela?Comment accéder à une application graphique .NET via un service Web?

Merci pour votre aide.

Répondre

0

Vous pouvez facilement héberger un service Web Windows Communication Foundation dans votre application WinForms. Voir l'article MSDN sur How to Host a WCF Service in a Managed Application. Notez que si vous voulez que vos opérations de service interagissent avec les contrôles de l'interface utilisateur (ce que je suppose est le but d'avoir le service dans l'application - sinon il vaut mieux créer un service normal, non visuel et l'héberger dans IIS ou un service Windows), vous devrez utiliser Control.Invoke ou Control.BeginInvoke car les opérations de service s'exécutent sur un thread d'arrière-plan.

0

Ceci est un très bon exemple d'hébergement d'un service à partir d'une application Winforms.

http://www.codeproject.com/KB/WCF/WCFexample.aspx

Vous pouvez aussi faire quelque chose de simple comme ceci dans votre méthode principale:

/// <summary> 
    /// The main entry point for the application. 
    /// </summary> 
    [STAThread] 
    static void Main() 
    { 
     ServiceHost host = new ServiceHost(typeof(TestService)); 
     NetNamedPipeBinding namedPipe = new NetNamedPipeBinding(); 
     host.AddServiceEndpoint(typeof(ITest), namedPipe, "net.pipe://localhost/test"); 

     host.Open(); 

     Application.EnableVisualStyles(); 
     Application.SetCompatibleTextRenderingDefault(false); 
     Application.Run(new AutoDeployApp()); 
    } 

Ensuite, utilisez ce genre de chose à l'intérieur du service pour obtenir à la forme en cours d'exécution:

 MyForm form = Application.OpenForms["MyForm"] as MyForm ; 
Questions connexes