当前位置: 首页 > news >正文

汉中公司网站建设有哪些好的建站平台

汉中公司网站建设,有哪些好的建站平台,广州最近流行传染疾病,wordpress输出外部文章自动给 Asp.Net Core Api 增加 ApiVersionNeutralIntro新增加一个 Controller 的时候#xff0c;经常忘记在 Controller 上增加 ApiVersion #xff0c;结果就导致前端使用指定的 ApiVersion 访问的时候就会失败#xff0c;不支持的 Api 版本。错误信息如下#xff1a;{ 经常忘记在 Controller 上增加 ApiVersion 结果就导致前端使用指定的 ApiVersion 访问的时候就会失败不支持的 Api 版本。错误信息如下{ error: { code: UnsupportedApiVersion, message: The HTTP resource that matches the request URI http://localhost:5000/api/values does not support the API version 1.2., innerError: null } }因此希望可以在没有设置 ApiVersion 的时候也可以响应前端特定版本号的请求而微软提供了 ApiVersionNeutral 可以忽略版本任意版本号均可访问于是就想自动给没有设置 ApiVersion 的 Controller 自动设置 ApiVersionNeutral下面就通过分析源码来实现自动设置 ApiVersionNeutral分析源代码Asp.Net Core ApiVersion 源码地址https://github.com/Microsoft/aspnet-api-versioning使用 ApiVersion 会在注册服务的地方注册 ApiVersion 相关的服务 services.AddApiVersioning();找到源码 会发现注册服务的时候把 mvc 默认的 ActionSelector 替换成了 ApiVersionActionSelector然后查看 ApiVersionActionSelector 的源码找到了以下几处关键代码ApiVersion 服务注册ApiVersionNeturalApiVersionNeutralAttributeApiVersionActionSelectorControllerApiVentionBuilder总结如下如果 Controller 的 Attribute 定义的有 ApiVersionNeutralAttribute 就会忽略 ApiVersion 的限制即使没有使用 ApiVersion 或者使用任意一个 ApiVersion 都可以路由到 Action都可以访问得到也不会出现开篇提到的错误。解决方案可以自己实现一个 IControllerModelConvention去给没有定义 ApiVersion 的控制器加 ApiVersionNeutralAttribute实现代码如下public class ApiControllerVersionConvention : IControllerModelConvention { public void Apply(ControllerModel controller) { if (!(controller.ControllerType.IsDefined(typeof(ApiVersionAttribute)) || controller.ControllerType.IsDefined(typeof(ApiVersionNeutralAttribute)))) { if (controller.Attributes is Listobject attributes) { attributes.Add(new ApiVersionNeutralAttribute()); } } } }在注册 Mvc 服务的时候配置 MvcOptionsservices.AddMvc(options { options.Conventions.Add(new ApiControllerVersionConvention()); });启动项目这时候再访问原来因为没有定义 ApiVersion 的控制器下的路由这时就不会再报错了使用任意一个 ApiVersion 也都不会有问题了问题解决啦~~~扩展方法为了方便使用你也可以加一个扩展方法在扩展方法里配置 MvcOptions根据自己的需要我觉得两种方式都 OK 的扩展方法示例如下public static class MvcBuilderExtensions { public static IMvcBuilder AddApiControllerVersion(this IMvcBuilder builder) { if (builder null) { throw new ArgumentNullException(nameof(builder)); } builder.Services.ConfigureMvcOptions(options options.Conventions.Add(new ApiControllerVersionConvention())); return builder; } }使用的时候可以直接在 AddMvc 之后加上扩展方法就可以了services.AddMvc() .AddApiControllerVersion();实现源码源码很简单主要是看源码分析的过程源码地址https://github.com/WeihanLi/AspNetCorePlayground/blob/master/TestWebApplication/Conventions/ApiControllerConvention.cs现在 .net core 是开源的有许多问题都可以通过查看源码得到答案有问题多 Google 多看 Github 上的 issue多看源码相信大部分问题都可以解决了。End问题解决完美收官最后还是要说一下注意这个的使用情景如果你要指定一个默认的 ApiVersion 有更好的方法直接配置 ApiVersioningOptions 中的 DefaultApiVersion就可以了services.AddApiVersioning(options { options.AssumeDefaultVersionWhenUnspecified true; options.DefaultApiVersion ApiVersion.Default; });如果你的 ApiVersion 不定可能有些 Api 的 ApiVersion 会经常变可以使用这种方式。有问题欢迎联系~~
http://www.pierceye.com/news/562775/

相关文章:

  • 西安网站建设怎么接单做社交的招聘网站
  • 实训课网站开发个人小结横岗做网站
  • 网站集约化建设管理方案wordpress加cnzz统计在那里加
  • 重庆知道推广网站方法青岛网络推广的有哪些公司
  • 自己做网站服务器要多少钱特殊字体
  • 网站建设合同 协议书网站建设工具有哪些
  • 网站建设的基本条件网站建设策划案怎么写
  • 知乎网站开发用的语言郑州建设网站哪家好
  • 企业官网建站费用长沙做无痛肠镜东大医院l网站
  • 建网站资料wordpress 读书模板
  • 网站建设初学者教程成华区微信网站建设公司
  • 沈阳网站建设-中国互联商城页面
  • 成交型网站倡导公司进贤南昌网站建设公司
  • 网站跟软件有什么区别是什么点击器原理
  • 网站建设项目策划书范文杭州 网站开发公司
  • 酒店网站建设设计企业营销型网站策划
  • 用dw怎么做登录页面的网站成都微信网站建设推
  • 合肥网站建设案例美丽说网站模板
  • 大学网站建设管理办法手机网站如何推广
  • 本网站正在建设升级中常用的软件开发平台
  • 招标网站开发文档上海免费网站建站模板
  • 备案系统网站wordpress 条件查询
  • 网站建设的两个方面有网站源码如何搭建自己的网站
  • 网站建设的十点优势智慧团建电脑版登录入口官网
  • 重庆专业网站排名团队wordpress标签页模板
  • 网站模板安卓郑州网站建设氵汉狮网络
  • 想学做网站学那个软件好哪些网站可以做设计赚钱
  • 公司网站模板中英文苏州网站建设套餐
  • 威海外贸网站建设可拖拽html网页编辑器
  • 西乡塘网站建设企业vi形象设计是什么意思