Skip to main content

Blazor基础之环境

分类:  Blazor入门 标签:  #Asp.Net core基础 #.Net #Web #Web Client #Blazor 发布于: 2023-05-25 21:05:09

今天我们来讲一下Blazor基础之环境和环境变量

本章实际上也是主要讨论基于WebAssembly部署的,因为基于Blazor Server部署的应用实际对于环境的配置和ASP.net Core是一致的,因此关于这个部分,你可以直接参考ASP.net Core的文档:
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/environments?view=aspnetcore-5.0

由于WebAssembly主要运行在浏览器端(也即客户端), 因此针对于WebAssembly来说,不能像基于Blazor Server形式来判断环境。由于基于Webassemlby的应用可以使用基于ASP.net Core的服务host形式,或者是直接使用Web服务器静态来的Host,因此对于基于WebAssembly部署的应用判断环境最有利的方法是通过对于HTTPheader变量来设定是最有力,我们也是采取这种做法,在HTTP通讯时的头部加上一个参数:blazor-environment 来指定应用是运行在什么环境下,例如是Production环境还是Development环境。

 

举一个例子,加入你是使用IIS Host WebAssembly的应用,那么如下就是通过web.config来配置的环境:



如何在组件中判断处于什么运行环境

基于WebAssembly运行的应用会自动注册一个实例到DI容器中,在组件中需要用注入的方式直接访问就可以了,如下图:


在程序启动的时候,WebAssemblyHostBuilder通过HostEnvironemtn属性(实现了接口:IWebAssemblyHostEnviroment)来暴露环境变量:


同时通过扩展WebAssemblyHostEnviormentExtension提供如下几个方法:

  • IsDevelopment

  • IsProduction

  • IsStagging

  • IsEnvironment

 实例如下: