如何通过Web服务访问.NET GUI应用程序?
问题描述:
我一直在寻找一段时间来回答我的问题,但到目前为止没有找到可靠的链接。我想要做的是:我已经构建了一个Windows .NET GUI应用程序。我希望能够通过Web服务访问表单控件的功能。如何做到这一点有什么好的链接?如何通过Web服务访问.NET GUI应用程序?
感谢您的帮助。
答
您可以在WinForms应用程序中轻松托管Windows Communication Foundation Web服务。请参阅How to Host a WCF Service in a Managed Application上的MSDN文章。
请注意,如果您希望您的服务操作与UI控件进行交互(我认为这是在应用程序中使用服务的目的 - 否则最好创建一个正常的非可视化服务并将其托管IIS或Windows服务),那么您将需要使用Control.Invoke或Control.BeginInvoke,因为服务操作在后台线程上运行。
答
这是从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 ;