2013-03-14 52 views
0

我是一個對接口進行編碼的巨大粉絲。在WCF世界中,這強調了每項服務。然而,我深入瞭解ASP.NET Web Api,作爲MVC 4的擴展,我很好奇,看看是否有一些典型的推理讓你的控制器實現從接口繼承。asp.net web api控制器接口有什麼好處嗎?

我知道ASP.NET網頁API的默認設置是這個樣子

public class TestsController : ApiController 
{ 

    public IEnumerable<string> Get() 
    { 
     var testValues = new List<string> 
      { 
       "Something", 
       "Welcome to the top of the world" 
      }; 
     return testValues; 
    } 
} 

與此相反用cooresponding接口(或接口)。

public class TestsController : ApiController, ITestsController 
{ 

    public IEnumerable<string> Get() 
    { 
     var testValues = new List<string> 
      { 
       "Something", 
       "Welcome to the top of the world" 
      }; 
     return testValues; 
    } 
} 

回答

4

我覺得這是在使用一個接口一樣,對於控制器沒有價值。 WCF在接口上依賴很多,因爲這對於SOAP服務來說是很常見的事情,並且它用於在WSDL中生成合約。但是,HTTP Web API沒有這種合同,通常這是一種不好的做法。另外,當需要使用依賴注入和單元測試時,接口很常見,因爲它們允許您輕鬆僞造依賴關係。但是,我不認爲你會將控制器作爲依賴注入到另一個類中,所以它在那裏也沒有意義。

+0

這就是我想的。在這個框架中,我看不出很多使用緊密編程控制器的接口,特別是因爲對象以JSON的形式離開和輸入服務(通常),並且在HTTP環境中。我想這個概念放棄了依靠彼此的前向型安全和有限合同的單獨程序集的想法。 – 2013-03-14 14:32:07

相關問題