首页 > 解决方案 > asp.net Web API核心项目启动类里面的SetCompatibilityVersion是什么

问题描述

使用 Visual Studio 2017,我刚刚创建了一个简单的 API 项目,如下所示。在 Startup.cs 文件中,我有这段代码。

public void ConfigureServices(IServiceCollection services) {

    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

}

有人可以解释一下是什么意思吗?我们需要保留此代码吗?

我认为 MS 应该发表一些评论来说明此类代码的作用。

设置兼容性版本

标签: c#asp.net-coreasp.net-core-webapi

解决方案


当您调用该AddMvc方法时,会使用某些选项注册几个组件。你调用一个方法,整个 mvc 框架就被连接起来了。

但是,如果 mvc 团队将来决定更改默认值,或者决定不再默认注册组件,或者更改此方法的预期副作用,则依赖于该方法的用户代码将中断。为避免此类破坏,您可以调用 mvc 团队将使用的设置兼容性方法来保留提供给您的行为。

假设他们引入了一个新功能,该功能仅在您针对 2.3 平台时才存在:如果您的代码声明它针对 2.2 api,mvc 团队将知道您没有使用该功能,因为它当时不存在。通过这种方式,可以对应该提供什么以及如何提供做出安全的假设。

有关详细信息,请查看MSDN


推荐阅读