微软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

文章里面的截图代码参见:https://github.com/geffzhang/Abp.BootstrapTheme 

如何在 Blazor WebAssembly中 使用 功能开关的更多相关文章

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

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

  2. Blazor(WebAssembly) + .NETCore 实现斗地主

    之前群里大神发了一个 html5+ .NETCore的斗地主,刚好在看Blazor WebAssembly 就尝试重写试试. 还有就是有些标题党了,因为文章里几乎没有斗地主的相关实现:),这里主要介绍 ...

  3. Blazor WebAssembly + Grpc Web = 未来?

    Blazor WebAssembly是什么 首先来说说WebAssembly是什么,WebAssembly是一个可以使C#,Java,Golang等静态强类型编程语言,运行在浏览器中的标准,浏览器厂商 ...

  4. 浏览器中的 .Net Core —— Blazor WebAssembly 初体验

    前言 在两年多以前就听闻 Blazor 框架,是 .Net 之父的业余实验性项目,其目的是探索 .Net 与 WebAssembly 的兼容性和应用前景.现在这个项目已经正式成为 Asp.Net Co ...

  5. 如何在“代码”视图中工作并充分利用 Dreamweaver 的编码功能。如 Emmet 缩写

    可通过多种方式在 Dreamweaver 中处理代码. 您可以使用“新建文档”对话框打开新的代码文件,然后开始键入您的代码. 在 Dreamweaver 中创建新的代码文件 键入时,会显示代码提示以帮 ...

  6. 使用WebApi和Asp.Net Core Identity 认证 Blazor WebAssembly(Blazor客户端应用)

    原文:https://chrissainty.com/securing-your-blazor-apps-authentication-with-clientside-blazor-using-web ...

  7. Blazor WebAssembly 3.2.0 Preview 4 如期发布

    ASP.NET团队如期3.16在官方博客发布了 Blazor WebAssembly 3.2.0 Preview 4:https://devblogs.microsoft.com/aspnet/bla ...

  8. Blazor WebAssembly 3.2.0 已在塔架就位 将发射新一代前端SPA框架

    最美人间四月天,春光不负赶路人.在充满无限希望的明媚春天里,一路风雨兼程的.NET团队正奋力实现新的突破. 根据计划,新一代基于WebAssembly 技术研发的前端SPA框架Blazor 将于5月1 ...

  9. Blazor WebAssembly 3.2.0 正式起飞,blazor 适合你吗?

    最近blazor更新很快,今天在官方博客上发布了Blazor WebAssembly 3.2.0 RC:https://devblogs.microsoft.com/aspnet/blazor-web ...

随机推荐

  1. Python-自动化测试面试

    1.以你做过的项目,举例来说一下你的自动化测试是怎么做的? 参考答案:就拿简历上的ecshop项目来说吧,在编写脚本前,我们会对系统进行评估,确认这个系统可不可以实现UI自动化,如果可以的话,就筛选出 ...

  2. Python高级语法-import导入-sys.path(4.4.1)

    @ 目录 1.说明 2.代码 关于作者 1.说明 在开发程序的过程中,往往使用sys.path去验证下导入的目录,返回的是列表 先后顺序,就是扫描的先后顺序 ,也可以加入搜索路径 import有个特点 ...

  3. pandas的学习1-基本介绍

    ''' Numpy 和 Pandas 有什么不同 如果用 python 的列表和字典来作比较, 那么可以说 Numpy 是列表形式的,没有数值标签,而 Pandas 就是字典形式.Pandas是基于N ...

  4. MGRE实验--内网为OSPF

    实验要求: R2为ISP,只能配置IP地址 R1.R3.R4之间构建MGRE环境,仅R1IP地址固定 内网使用OSPF获取路由,全网可达 拓扑: 1.配置IP地址 2.配置缺省 3.配置MGRE环境 ...

  5. EF5中使用UnitOfWork

    前言 每次提交数据库都会打开一个连接,造成结果是:多个连接无法共用一个数据库级别的事务,也就无法保证数据的原子性.一致性. 解决办法是:在ObjectContext的CRUD操作基础上再包装一层,提供 ...

  6. npm 各种常用命令

    全局删除 node-gyp npm -g uninstall node-gyp 再次安装依赖 npm install 更改包内容后重建 npm rebuild 清除缓存 npm cache clean ...

  7. 10天,从.Net转Java,并找到月薪2W的工作(三)

    放弃Offer之后,压力一天比一天打 好点的公司,除了技术追根问底,还对你平时代码实践问的很多.比如问你,redis缓存一般设置多大.问你项目内容的细节,业务流程. 集合.锁.Jvm.多线程高并发.微 ...

  8. npm国内淘宝镜像

    理由 由于npm的registry地址是国外的,速度很慢,所以推荐使用淘宝镜像:https://registry.npm.taobao.org 配置方法 临时配置 npm --registry htt ...

  9. java使用map去重复

    public class Test { public static void main(String[] args) { Map<Number, String> map1 = new Ha ...

  10. 【SpringBoot—注解】@requestBody 与@requestparam;@requestBody的加与不加的区别

    一)首先说明xia @requestBody与@requestParam的区别 spring的RequestParam注解接收的参数是来自于requestHeader中,即请求头.都是用来获取请求路径 ...