2010-01-14 122 views
0

我一直在寻找一段时间来回答我的问题,但到目前为止没有找到可靠的链接。我想要做的是:我已经构建了一个Windows .NET GUI应用程序。我希望能够通过Web服务访问表单控件的功能。如何做到这一点有什么好的链接?如何通过Web服务访问.NET GUI应用程序?

感谢您的帮助。

回答

0

您可以在WinForms应用程序中轻松托管Windows Communication Foundation Web服务。请参阅How to Host a WCF Service in a Managed Application上的MSDN文章。

请注意,如果您希望您的服务操作与UI控件进行交互(我认为这是在应用程序中使用服务的目的 - 否则最好创建一个正常的非可视化服务并将其托管IIS或Windows服务),那么您将需要使用Control.Invoke或Control.BeginInvoke,因为服务操作在后台线程上运行。

0

这是从Winforms应用程序托管服务的一个很好的例子。

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

你也可以做一些简单的像这样在你的主要方法:

/// <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()); 
    } 

然后,使用服务中这种类型的事情来获得在跑步方式:

 MyForm form = Application.OpenForms["MyForm"] as MyForm ; 
相关问题