2013-03-29 58 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容器中爲此類提供單身使用壽命。