Как получить доступ к приложению .NET GUI через веб-сервис? - PullRequest
0 голосов
/ 14 января 2010

Я некоторое время искал ответ на свою проблему, но пока не нашел надежных ссылок. Я пытаюсь сделать следующее: я создал приложение Windows .NET GUI. Я хотел бы иметь возможность получить доступ к функциональности элементов управления формы через веб-службу. Есть ли хорошие ссылки о том, как это сделать?

Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 14 января 2010

Это довольно хороший пример размещения службы из приложения 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 ;
0 голосов
/ 14 января 2010

Вы можете легко разместить веб-службу Windows Communication Foundation в приложении WinForms.См. Статью MSDN по Как разместить службу WCF в управляемом приложении .

Обратите внимание, что если вы хотите, чтобы операции службы взаимодействовали с элементами управления пользовательского интерфейса (что, как я полагаю, является цельюналичие службы в приложении - в противном случае лучше создать обычную невизуальную службу и разместить ее в IIS или службе Windows), тогда вам потребуется использовать Control.Invoke или Control.BeginInvoke, поскольку операции службы выполняются в фоновом режиме.нить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...