Asp.net WebApi版本控制

本文探讨在ASP.NET WebApi项目中进行版本控制的方法,特别是针对已运行一段时间后需引入版本控制的情况。文章提供了一个可以运行的demo,介绍了如何创建VersionHttpControllerSelector并修改WebApiConfig.cs来实现版本控制。版本号可以从URL或请求头获取,实际选择取决于具体需求。此版本控制主要用于控制控制器的选择。
摘要由CSDN通过智能技术生成

关web api的版本控制网上有很多,如Web API 版本控制的几种方式  Web API 版本化的介绍 但是具体的code并不多,或者说可以run的demo 不多。



版本控制如果项目一开始还好做关键是很多项目都在中后期才引入版本控制。如:


如这里的ValuesController先前是没有版本控制的,可能项目运行一段时间后才需要增加版本控制,不得影响已有的使用哦。

版本控制的原理主要就是如何确定controler。新建VersionHttpControllerSelector如下:

public class VersionHttpControllerSelector : IHttpControllerSelector
    {
        private const string VersionKey = "version";
        private const string ControllerKey = "controller";

        private readonly HttpConfiguration _configuration;
        private readonly Lazy<Dictionary<string, HttpControllerDescriptor>> _controllers;
        private readonly HashSet<string> _duplicates;

        public VersionHttpControllerSelector(HttpConfiguration config)
        {
            _configuration = config;
            _duplicates = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
            _controllers = new Lazy<Dictionary<string, HttpControllerDescriptor>>(InitializeControllerDictionary);
        }

        private Dictionary<string, HttpControllerDescriptor> InitializeControllerDictionary()
        {
            var dictionary = 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值