我的项目中有多个控制器和控制器。
如何使两种类型的控制器继承基类,因为我需要两种方法,而不是一些方法?
答案 0 :(得分:3)
组合可能是更好的选择。
基本上,不是继承以获得功能,而是将其粘贴在一个公共类中,可以作为属性包含在Api和标准控制器中。
然后,您可以将依赖性注入两者。
例如:
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。
答案 1 :(得分:0)
MVC控制器继承自Controller
,而API控制器继承自ApiController
。 C#不容易支持多重继承。我建议将共享逻辑移动到一个可以调用的静态类中。否则,您可以提供有关共享内容的更多详细信息;在某些情况下,其他设计模式可能更合适。