c# - asp.net Web API核心项目启动类里面的SetCompatibilityVersion是什么
问题描述
使用 Visual Studio 2017,我刚刚创建了一个简单的 API 项目,如下所示。在 Startup.cs 文件中,我有这段代码。
public void ConfigureServices(IServiceCollection services) {
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
有人可以解释一下是什么意思吗?我们需要保留此代码吗?
我认为 MS 应该发表一些评论来说明此类代码的作用。
解决方案
当您调用该AddMvc
方法时,会使用某些选项注册几个组件。你调用一个方法,整个 mvc 框架就被连接起来了。
但是,如果 mvc 团队将来决定更改默认值,或者决定不再默认注册组件,或者更改此方法的预期副作用,则依赖于该方法的用户代码将中断。为避免此类破坏,您可以调用 mvc 团队将使用的设置兼容性方法来保留提供给您的行为。
假设他们引入了一个新功能,该功能仅在您针对 2.3 平台时才存在:如果您的代码声明它针对 2.2 api,mvc 团队将知道您没有使用该功能,因为它当时不存在。通过这种方式,可以对应该提供什么以及如何提供做出安全的假设。
有关详细信息,请查看MSDN。
推荐阅读
- java - 未找到 Keycloak 提供程序
- c++ - C++ - 没有矩阵的组合变换
- c# - EF Core 中的异常使用存储过程返回多个结果
- python - 根据列表中的相似项检查列表的索引,然后根据列表的维度附加到另一个列表中
- oracle - 从大表中删除多条记录
- php - Symfony 3.4 应用程序使用 Guard 身份验证,如何额外添加 http 基本身份验证?
- abap - 在ABAP程序中获取调用事务名称
- .net - 如何在 C# 中获取服务器名称和实例名称列表
- android - 令牌身份验证无法接收令牌
- c# - 如何在使用 Unity 和 ARkit 的信标的帮助下显示室内导航路径?