如何通过Web服务访问.NET GUI应用程序?

时间:2010-01-14 00:02:40

标签: .net web-services user-interface

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

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分: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 ;