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..
}
2 回答
组合可能是更好的选择 .
基本上不是继承以获得功能,而是将其粘贴在一个公共类中,它可以作为属性包含在Api和标准控制器中 .
然后,您可以将依赖性注入两者 .
例如:
作文通常是favoured over inheritence,上面有大量的文章,只需做一个快速的谷歌搜索,阅读this article .
MVC控制器继承自
Controller
,而API控制器继承自ApiController
. C#不容易支持多重继承 . 我建议将共享逻辑移动到一个可以调用的静态类中 . 否则,您可以提供有关共享内容的更多详细信息;在某些情况下,其他设计模式可能更合适 .