ASP.NET Core 3框架读取配置数据

提到“配置”二字,我想绝大部分.NET开发人员脑海中会立即浮现出两个特殊文件的身影,那就是我们再熟悉不过的app.config和web.config,多年以来我们已经习惯了将结构化的配置定义在这两个XML格式的文件之中。到了.NET Core的时代,很多我们习以为常的东西都发生了改变,其中就包括定义配置的方式。总的来说,新的配置系统显得更加轻量级,并且具有更好的扩展性,其最大的特点就是支持多样化的数据源。我们可以采用内存的变量作为配置的数据源,也可以将配置定义在持久化的文件甚至数据库中。在对配置系统进行系统介绍之前,我们先从编程的角度来体验一下全新的配置读取方式。

一、配置编程模型三要素
就编程层面来讲,.NET Core的配置系统由如下图所示的三个核心对象构成。读取出来的配置信息最终会转换成一个IConfiguration对象供应用程序使用。IConfigurationBuilder是IConfiguration对象的构建者,而IConfigurationSource则代表配置数据最原始的来源。

在读取配置的时候,我们根据配置的定义方式(数据源)创建相应的IConfigurationSource对象,并将其注册到IConfigurationBuilder对象上。提供配置的最初来源可能不止一个,我们可以注册多个相同或者不同类型的IConfigurationSource对象到同一个IConfigurationBuilder对象上。IConfigurationBuilder对象正是利用注册的这些IConfigurationSource对象提供的数据构建出我们在程序中使用的IConfiguration对象。

这里介绍的IConfiguration、IConfigurationSource和IConfigurationBuilder接口以及其他一些基础类型均定义在NuGet包“Microsoft.Extensions.Configuration.Abstractions”中。对这些接口的默认实现,则大多定义在“Microsoft.Extensions.Configuration”这个NuGet包中。

二、以键值对的形式读取配置
虽然大部分情况下的配置从整体来说都具有结构化层次关系,但是“原子”配置项都以体现为最简单的“键值对”形式,并且键和值通常都是字符串。接下来我们会通过一个简单的实例来演示如何以键值对的形式来读取配置。

假设我们的应用程序需要通过配置来设定日期/时间的显示格式,为此我们将相关的配置信息定义在如下所示的这个DateTimeFormatOptions类中,它的四个属性体现了针对DateTime对象的四种显示格式(分别为长日期/时间和短日期/时间)。

public class DateTimeFormatOptions
{

public string LongDatePattern { get; set; }
public string LongTimePattern { get; set; }
public string ShortDatePattern { get; set; }
public string ShortTimePattern { get; set; }
}
我们希望通过配置的形式来控制由DateTim

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASP.NET Core MVC 是一种基于 .NET Core 的 web 框架,它不仅支持常见的 web 应用程序模式,如 MVC (Model-View-Controller) 和 API (Application Programming Interface),还提供了一系列集成工具和插件,方便开发人员进行 web 应用程序的快速开发。 在 ASP.NET Core MVC 中,图片上传方法可以通过将表单中的文件数据流存储在服务器上来实现。可以使用 IFormFile 接口和相应的绑定器来读取表单中的文件数据流。以下是一个示例代码片段,演示了如何上传并处理单个图片: public async Task<IActionResult> UploadImage(List<IFormFile> files) { long size = files.Sum(f => f.Length); foreach (var formFile in files) { if (formFile.Length > 0) { var fileName = ContentDispositionHeaderValue.Parse (formFile.ContentDisposition).FileName.Trim('"'); var filePath = @"C:\temp\uploads\" + fileName; using (var stream = new FileStream(filePath, FileMode.Create)) { await formFile.CopyToAsync(stream); } } } return Ok(new { count = files.Count, size }); } 代码中,我们首先将上传的文件存储在指定的目录中,然后返回一个包含上传的文件数量和总文件大小的 JSON 数据。这个过程可以通过简单的编辑和适当的修改快速适用于你的图片上传需求。 总的来说,ASP.NET Core MVC 提供了强大的功能和灵活性,使得开发人员能够轻松地构建和维护复杂的 web 应用程序。针对图片上传,使用 IFormFile 接口和相应的处理器,可以方便地实现图片上传的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值