asp.net-mvc - ApiController 和 Controller 继承自同一个基类

标签 asp.net-mvc

我的项目中有多个 Controller 和 apicontroller。

如何使两种类型的 Controller 继承基类,因为两种 Controller 都需要多种方法?

最佳答案

组合可能是更好的选择。

基本上,不是通过继承来获得功能,而是将其粘贴在公共(public)类中,该类可以作为属性包含在 Api 和标准 Controller 中。

然后您可以将依赖项注入(inject)到两者中。

例如:

public class CommonControllerLogic : ICommonControllerLogic 
{
  public ActionResult SomeSortOfMethod() 
  {
     // etc..
  }
}

public class MobileApiController: ApiController 
{
  public ICommonControllerLogic CommonControllerLogic  {get;set;}

  // etc..
}

public class HomeController: Controller 
{
  public ICommonControllerLogic CommonControllerLogic  {get;set;}

  // etc..
}

构图常常是favoured over inheritence,上面有很多文章,只需快速谷歌搜索即可,阅读this article .

关于asp.net-mvc - ApiController 和 Controller 继承自同一个基类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22313154/

相关文章:

asp.net - 如何在页面页脚中显示生成页面所需的持续时间?

asp.net - 需要向第三方提供有关 REST URL 的建议以访问我的网站

javascript - URL 中的日期值因 MVC GET 请求而损坏

javascript - 如何获取第二个定义的单选按钮值?

c# - 部分空异常中的部分

asp.net-mvc - 'the URL is local'是什么意思?

asp.net-mvc - 为什么使用 SignalR 从 MVC 应用程序推送消息无法到达客户端?

jquery - 是否有针对 ASP.NET MVC 和 jQuery 的 AJAX 超时的现有解决方案?

asp.net-mvc - IE11 不发送 session cookie

asp.net - 如果 PostgreSql 数据库中的数据发生更改,如何使 ASP.NET 缓存失效