我的项目中有多个 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/