2013-03-29 57 views
2

我想知道是否有办法创建一个包含web API的类库,所以我可以使用dll作为插件,将其注入到MVC应用。Asp.Net MVC消费类库中的web api

非常感谢您的帮助。

+1

谷歌似乎工作得很好:http://www.asp.net/web-api/overview/web-api-clients/calling-a-web-api-from-a-net-client – David

+0

也许你只是想让你的asp.net mvc控制器和webapi控制器分开?然后检查这个帖子:http://stackoverflow.com/questions/10677745/mixing-web-api-and-asp-net-mvc-pages-in-one-project – AardVark71

回答

1

Web API方法通过HTTP调用,因此调用Web API服务需要将其托管在某处并使用合适的客户端进行调用,详见@David's link。你可以使用可以self-host Web API,所以理论上你可以在MVC应用程序中拥有一个本地程序集,该程序包含一个类,该类设置并调用自托管的Web API服务。

您将注入的Web API服务的接口后面,这样的事情:

​​3210

...实现这样的事情:

public class SelfHostedWebApiProductsService 
{ 
    public SelfHostedWebApiProductsService() 
    { 
     // Set up a self-hosted Web API service 
    } 

    public IEnumerable<Product> GetAllProducts() 
    { 
     // Call your self-hosted WebApi to get the products 
    } 
} 

Configure your DI container使用SelfHostedWebApiProductsServiceIProductsService接口,并离开你去。 This article详细说明如何设置和调用自托管的Web API。

由于SelfHostedWebApiProductsService在其构造函数中设置自托管的Web API - 一个相对昂贵的操作 - 您可能需要考虑在您的DI容器中为此类提供单身使用寿命。