如何在WPF项目中公开一个restful服务

时间:2016-12-05 16:42:19

标签: c# asp.net wpf web-services

我是一个新手。我将Visual Studio 2010用于桌面应用程序,我需要将一些数据从那里暴露给我的局域网中的网站,但我不知道如何使用。

我创建了一个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);
    }

并且有效:picture that shows the service works

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

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

感谢您的耐心,祝您度过愉快的一天。

1 个答案:

答案 0 :(得分:3)

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

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

...并在包括WPF应用程序的任何.NET应用程序中托管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-apis-with-aspnet-web-api

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