Asp.net core mvc 为什么控制器从GitHub上的ControllerBase继承而不是从VS中继承?

Asp.net core mvc 为什么控制器从GitHub上的ControllerBase继承而不是从VS中继承?,asp.net-core-mvc,Asp.net Core Mvc,在Visual Studio中按控制器上的F12(转到定义)时,会显示抽象基类 公共抽象类控制器:IActionFilter、IFilterMetadata、IAsyncationFilter、IDisposable 但是当抬头看的时候。它表明它继承自 公共抽象类控制器:ControllerBase、IActionFilter、IAsyncationFilter、IDisposable 为什么会这样 我很困惑。另外,既然HomeController继承自Controller当C#不支持多重继

在Visual Studio中按控制器上的F12(转到定义)时,会显示抽象基类

公共抽象类控制器:IActionFilter、IFilterMetadata、IAsyncationFilter、IDisposable
但是当抬头看的时候。它表明它继承自

公共抽象类控制器:ControllerBase、IActionFilter、IAsyncationFilter、IDisposable
为什么会这样


我很困惑。另外,既然
HomeController
继承自
Controller
当C#不支持多重继承时,
Controller
如何继承自
ControllerBase
。例如,您在GitHub上链接到的文件是该文件的当前版本,请注意,它来自开发分支

而且很可能您没有运行来自当前开发分支的代码

如果单击GitHub上链接到的文件的历史记录按钮,您将看到该文件的修订历史记录

我通过单击每个修订版的按钮来检查此文件的各种版本,但与您正在运行的代码版本不匹配。我发现该文件的修订历史只能追溯到2016年1月22日。因此在此之前,控制器代码必须在不同的文件中定义,或者由于其他原因,修订历史记录丢失(可能是在他们将其从MVC 6重命名为Core MVC 1.0时)

很可能您正在运行来自RC1的代码。GitHub上的Controller.cs版本与您看到的更为接近:如果它是代码的正确版本,则应该完全匹配,但我看到它仍然略有不同。从某种意义上讲,它是匹配的,即它不是从
ControllerBase
继承的


还有关于多重继承。当HomeController从Controller继承并且Controller从ControllerBase继承时,这不是多重继承。如果在控制器定义中有一个ControllerBase,比如说一个SomethingElse类和一个从这两个类继承的控制器,那么就会出现多重继承。C#不支持这一点是正确的。

Controller仅继承ControllerBase类rest areinterfaces@brykneval,是,但
HomeController
继承自`控制器',后者又继承自
BaseController
。但也许这不是多重继承?