我一直在尋找一段時間來回答我的問題,但到目前爲止沒有找到可靠的鏈接。我想要做的是:我已經構建了一個Windows .NET GUI應用程序。我希望能夠通過Web服務訪問表單控件的功能。如何做到這一點有什麼好的鏈接?如何通過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 ;