ASP.NET Core读取XML文件

Laughing
2017-09-18 / 0 评论 / 1,655 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年04月27日,已超过1361天没有更新,若内容或图片失效,请留言反馈。

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

2

评论 (0)

取消
  1. 头像
    leon
    MacOS · Safari

    谢谢

    回复
  2. 头像
    Half
    Windows 10 · QQ Browser

    改好了吗博主

    回复