2

我非常喜欢针对接口进行编码。在 WCF 世界中,这高度强调每一项服务。但是,我正在深入了解 ASP.NET Web Api,作为 MVC 4 的扩展,我很想知道是否有一些典型的理由可以让您的控制器实现从接口继承。

我知道 ASP.NET Web Api 的默认设置看起来像这样

public class TestsController : ApiController
{

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

与此相反,有一个对应的接口(或多个接口)。

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

1 回答 1

5

我认为将这样的接口用于控制器没有任何价值。WCF 很大程度上依赖于接口,因为它是 SOAP 服务的常见事物,并且它用于在 WSDL 中生成合同。但是,HTTP Web API 没有这种约定,拥有它通常是一种不好的做法。此外,当您需要使用依赖注入和单元测试时,接口很常见,因为它们允许您轻松伪造依赖关系。但是,我认为您不会将控制器作为依赖项注入另一个类,因此在那里也没有意义。

于 2013-03-14T14:14:58.060 回答