如何在 WPF 项目中公开 Restful 服务

Jul*_*rio 0 c# asp.net wpf web-services

我是个新手。我正在使用 Visual Studio 2010 作为桌面应用程序,我需要将其中的一些数据公开到我的 LAN 中的网站,但我不知道如何操作。

我创建了一个 MVC2 项目,创建了一个新控制器,并且可以公开一个简单的“helloWorld”服务,如下所示:

[HttpGet]
    public JsonResult HolaMundo()
    {
        List<object> movies = new List<object>();

        movies.Add(new { Title = "Ghostbusters", Genre = "Comedy", Year = 1984 });
        movies.Add(new { Title = "Gone with Wind", Genre = "Drama", Year = 1939 });
        movies.Add(new { Title = "Star Wars", Genre = "Science Fiction", Year = 1977 });

        return Json(movies, JsonRequestBehavior.AllowGet);
    }
Run Code Online (Sandbox Code Playgroud)

它有效:显示服务工作的图片

除了在 wpf 项目中我该怎么做?(或者我如何使用 wpf 项目中的这个 mvc 项目来获得相同的结果?)

我只是迷失在信息的海洋中,我什至不知道如何寻找解决问题的方法。

感谢您的耐心等待,祝您有愉快的一天。

mm8*_*mm8 5

您通常不会从 WPF 应用程序公开RESTful 服务。WPF 应用程序是客户端桌面应用程序,应该在最终用户客户端计算机上运行。RESTful 服务应该从多个客户端可以连接的服务器(通常是 Web 服务器)公开。

您确实可以使用 WCF 创建 REST 服务:http://www.infoworld.com/article/3061973/application-development/how-to-create-a-restful-service-in-wcf.html

...并在任何 .NET 应用程序(包括 WPF 应用程序)中托管 WCF 服务:https://msdn.microsoft.com/en-us/library/ms731758 (v=vs.110).aspx

但问题是,仍然没有好的方法来公开 WPF 客户端应用程序,以便其他客户端可以连接到它,因为它是客户端应用程序而不是服务器应用程序。因此,如果您想创建 RESTful 服务,我建议您查看 WCF 或 ASP.NET Web API:https ://www.asp.net/web-api/overview/older-versions/build-restful- api 与 aspnet-web-api

然后,您可以使用 HttpClient 客户端等在 WPF 应用程序中使用REST 服务。这里有一个如何执行此操作的示例: https: //www.asp.net/web-api/overview/advanced/calling-a-web-api-from-a-net-client。从 WPF 应用程序使用 REST 服务与从任何其他托管 (.NET) 应用程序使用 REST 服务实际上没有区别。

  • 嗯,是的——“通常”。现在,我确实想要这样:从 WPF 应用程序公开 RESTful 服务。我知道这应该通过服务来完成,但在这种特殊情况下它不适合。 (2认同)