2016-12-05 86 views
1

我是一个新手。我正在使用Visual Studio 2010作为桌面应用程序,我需要将一些数据从那里公开到局域网中的网站,但我不知道如何去做。如何在WPF项目中公开一个宁静的服务

我创建一个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项目来获得相同的结果?)

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

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

回答

4

您通常不会暴露来自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服务之间确实没有区别。

+0

谢谢,这帮我清理了很多东西。 –

相关问题