微软Azure 团队开发的 功能管理 (Feature Management) 包 Microsoft.FeatureManagement可用于实现 功能开关,可以通过功能开关特性动态的改变应用程序的行为而不需要改变任何的业务逻辑代码。关于功能开关的更多功能请看Edi Wang的B站视频,长按小程序码进入观看

这篇文章的重点是介绍如何在Blazor WebAssembly项目中实现功能开关。

通过 NuGet 安装 Microsoft.FeatureManagement ,可通过 Visual Studio 2019 下的 NuGet Package Manager 可视化管理界面 或者 通过 .NET CLI 命令行工具输入如下命令。

dotnet add package Microsoft.FeatureManagement

为了能够在项目中用上 功能管理,需要在 ConfigureServices 方法下进行 service 注入,如下代码所示:

有一点要注意:功能管理 中的 功能开关 读取的值来自于配置文件,如果你想让 功能开关 的值来源于 Configuration 文件的不同节点,必须在 service 注册时单独指定一下。

为了能够在 Blazor Wassembly中用上 功能管理(feature management),需要通过依赖注入的方式将其注入到 Blazor 组件中:

使用时调用IFeatureManager 接口的方法IsEnabledAsync,代码如下:

用法很简单吧,可以看到 .NET 的对 功能管理 提供了开箱即用的支持, 这确实是一个非常实用的特性,更多关于该 知识点 的介绍,可参考官网:https://docs.microsoft.com/en-us/azure/azure-app-configuration/use-feature-flags-dotnet-core

从这篇小文章你可以感受到使用blazor 可以将.NET的整个生态融入到前端,这样的blazor 是为你赋能。文章里面的截图代码参见:https://github.com/geffzhang/Abp.BootstrapTheme

如何在 Blazor WebAssembly中 使用 功能开关相关推荐

  1. 如何在 ASP.NET Core 中 使用 功能开关

    .NET Core 中的 功能管理 (Feature Management) 包可用于实现 功能开关,什么意思呢?就是可以通过 功能开关 特性动态的改变应用程序的行为而不需要改变任何的业务逻辑代码,听 ...

  2. 在 Blazor WebAssembly 中使用 gRPC-Web

    对于单页面应用程序,gRPC-Web 是 JSON-over-HTTP 的一种方便.高性能的替代方案. 如果你已经了解关于 gRPC 和 gRPC-Web 的一切,你可以跳到 添加 gRPC 服务到一 ...

  3. rails 添加外键_如何在Rails后端中添加功能强大的搜索引擎

    rails 添加外键 by Domenico Angilletta 通过多梅尼科·安吉列塔(Domenico Angilletta) In my experience as a Ruby on Rai ...

  4. cbrt c语音_如何在C语言中实现功能重载?

    是! 在这个问题提出后的时间里,标准C(没有扩展)有效地得奖支持函数重载(而不是操作符),这要归功于添加了_Generic关键字在C11.(GCC自4.9版起支持) (重载并不是问题中所显示的真正的& ...

  5. Blazor WebAssembly 应用程序中进行 HTTP 请求

    翻译自 Waqas Anwar 2021年5月13日的文章 <Making HTTP Requests in Blazor WebAssembly Apps> [1] 在我的前篇文章< ...

  6. 使用功能开关更好地实现持续部署

    本文转载自InfoQ上文章http://www.infoq.com/cn/articles/function-switch-realize-better-continuous-implementati ...

  7. 万字长文 - 解读功能开关 | IDCF

    原文:https://martinfowler.com/articles/feature-toggles.html 作者:Pete Hodgson 译者:冬哥 功能开关Feature Toggle(通 ...

  8. 微服务部署:蓝绿部署、滚动部署、灰度部署(金丝雀部署)、功能开关发布

    简介 产品或项目不可能一步到位,一次性推向用户,故而有版本的存在.在app版本更新或者项目迭代的过程中,不可避免需要发布.发布就是部署:部署就是修改:修改则意味着风险. 目前有很多用于部署的技术,本文 ...

  9. interop_如何在Blazor中实现JavaScript Interop

    interop 介绍 (Introduction) In this article, we will learn about JavaScript Interop in Blazor. We will ...

最新文章

  1. STM32H7的Cache和MPU
  2. Jmeter之定时器操作
  3. SharePoint 2013创建应用程序时IIS端口文件夹下没文件
  4. 用法与区别_生抽老抽、蚝油味极鲜,总算搞清楚区别了,用法大不同,别用错了...
  5. .net一个函数要用另一个函数的值_Mysql:条件判断函数-CASE WHEN、IF、IFNULL详解
  6. 第一章 对象引论02
  7. CocosCreator发布web-desktop获取本地资源
  8. 开心消消乐简单的逆向破解过程
  9. android 高仿新浪微博,android 仿新浪微博开写篇
  10. 20135202闫佳歆——信息安全系统设计基础第十三周学习总结
  11. Pandas中透视表和交叉表
  12. 转给身边工程师:环形穿梭车控制系统设计细节来了!
  13. 稠密集和疏朗集_稠密集与疏朗集
  14. 几种重要的排序算法——交换排序
  15. VS2010 正式版下载链接
  16. 齿轮建模 图片及链接
  17. 用java代码根据html页面生成图片
  18. 【数据结构】第一章绪论习题加答案
  19. html中input透明度,Html透明文本输入框
  20. 隔磁片在无线充线圈中的作用

热门文章

  1. ArcEngine开发体验(附许可)
  2. 【BZOJ1042】硬币购物(动态规划,容斥原理)
  3. Quartus prime16.0 与modelsim ae 联调
  4. mysql optimization
  5. 显示学生各科成绩和总成绩-面试被问到
  6. ArrayBlockingQueue, LinkedBlockingQueue, ConcurrentLinkedQueue, RingBuffer
  7. Android网络通信的六种方式示例代码
  8. 【MFC】MFC中调用系统软键盘的几种方法
  9. 如何使用ARM创建Teams Bot所需要的Azure资源
  10. 立即通过Xumo.TV在线观看免费电视