打开 appsettings.json,添加一项配置(如下方示例中的“SiteOptions”项)
* 注意,如需配置开发环境与生产环境不同的值,可单独在 appsettings.Development.json 文件中配置不同项,格式层次须一致;
C# 中习惯用强类型的方式来操作对象,那么在项目根目录添加类(类名以 SiteOptions为例),格式与 appsettings.json 中保持一致:
public class SiteOptions { public ERPOptions ERP { get; set; } public WeixinOpenOptions WeixinOpen { get; set; } public WeixinMPOptions WeixinMP { get; set; } public SMSOptions SMS { get; set; } public AliyunOSSOptions AliyunOSS { get; set; } /// <summary> /// 单个文件上传的最大大小(MB) /// </summary> public int MaxSizeOfSigleFile_MB { get; set; } /// <summary> /// 单个文件上传的最大大小(字节) /// </summary> public int MaxSizeOfSigleFile_B => MaxSizeOfSigleFile_MB * 1024 * 1024; public class ERPOptions { public int ChannelId { get; set; } public string AppKey { get; set; } } public class WeixinOpenOptions { public string AppId { get; set; } public string AppSecret { get; set; } } public class WeixinMPOptions { public string AppId { get; set; } public string AppSecret { get; set; } } public class SMSOptions { public string AppKey { get; set; } } public class AliyunOSSOptions { public string Endpoint { get; set; } public string AccessKeyId { get; set; } public string AccessKeySecret { get; set; } public string BucketName { get; set; } /// <summary> /// 格式://域名/ /// </summary> public string CdnUrl { get; set; } } }
在 Startup 中注入 IConfiguration,并在 ConfigureServices() 方法中添加服务(注意使用 GetSection() 映射到自命名的“SiteOptions”项)
在控制器中使用:
在控制器类中键入“ctor”,并按两次 Tab 键,创建构造函数
在构造函数中注入“IOptions”,并在 Action 中使用
using Microsoft.Extensions.Options; public class TestController : Controller { private readonly IOptions<SiteOptions> options; public TestController(IOptions<SiteOptions> options) { this.options = options; } public IActionResult Index() { return View(options.Value.ERP.ChannelId.ToString()); } }
在视图中使用:
@using Microsoft.Extensions.Options @inject IOptions<SiteOptions> options @options.Value.ERP.ChannelId
vs-iis-express-ssl-port
roll-back-to-mysql-connector-net-8-0-19
The-view-was-not-found
FromSqlRaw
csharp-substring