ASP.NET Core中,默认应用程序的配置是json文件,如果我们需要读取xml文件,是否也可以呢?答案是肯定的。其实读取xml文件的方式,跟读取json的方式基本是一样的,都可以通过Configuration读取。
定义XML文件
首先,我们定义个XML文件,这里我们命名为appsettings.xml,具体的内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<AppConfig>
<WebSite>
<Url des="网址">www.xiangcaowuyu.net</Url>
<Email>admin@lisen.org</Email>
</WebSite>
</AppConfig>
修改配置文件
程序如果不配置,默认读取的是appsettings.json或者appsettings.Development,我们需要修改程序,读取xml的配置文件。打开program.cs文件,修改内容如下
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Microsoft.AspNetCore.Builder;
namespace Study.WebUI
{
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseConfiguration(new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddXmlFile("appsettings.xml").Build())
.UseKestrel(options =>
{
options.Limits.MaxConcurrentConnections = 1024;
options.Limits.MaxRequestBodySize = 10 * 1024;
})
.Build();
}
}
安装Nuget包
为了读取xml文件,我们需要安装Microsoft.Extensions.Configuration.Xml
使用
以下代码分别演示读取xml节点的属性以及值得方法
app.Use(async (context,next) => {
Console.WriteLine("网址:"+Configuration["WebSite:Url:des"]);//读取属性
Console.WriteLine("邮箱:"+Configuration["WebSite:Email"]);//读取节点内容
await next.Invoke();
});
温馨提示
读取xml
不需要最外层跟节点,否则会返回null
谢谢
改好了吗博主