ASP.NET Core读取XML文件

原创 Laughing  2017-09-18 13:27  阅读 188 次 评论 0 条

ASP.NET Core中,默认应用程序的配置是json文件,如果我们需要读取xml文件,是否也可以呢?答案是肯定的。其实读取xml文件的方式,跟读取json的方式基本是一样的,都可以通过Configuration读取。

定义XML文件

首先,我们定义个XML文件,这里我们命名为appsettings.xml,具体的内容如下:

  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <AppConfig>  
  3.   <WebSite>  
  4.     <Url des="网址">www.lisen.me</Url>  
  5.     <Email>admin@lisen.me</Email>  
  6.   </WebSite>  
  7. </AppConfig>  

修改配置文件

程序如果不配置,默认读取的是appsettings.json或者appsettings.Development,我们需要修改程序,读取xml的配置文件。打开program.cs文件,修改内容如下

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.IO;  
  4. using System.Linq;  
  5. using System.Threading.Tasks;  
  6. using Microsoft.AspNetCore;  
  7. using Microsoft.AspNetCore.Hosting;  
  8. using Microsoft.Extensions.Configuration;  
  9. using Microsoft.Extensions.Logging;  
  10. using Microsoft.AspNetCore.Builder;  
  11.   
  12. namespace Study.WebUI  
  13. {  
  14.     public class Program  
  15.     {  
  16.         public static void Main(string[] args)  
  17.         {  
  18.             BuildWebHost(args).Run();  
  19.         }  
  20.   
  21.         public static IWebHost BuildWebHost(string[] args) =>  
  22.             WebHost.CreateDefaultBuilder(args)  
  23.                 .UseStartup<Startup>()  
  24.                 .UseConfiguration(new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddXmlFile("appsettings.xml").Build())  
  25.                 .UseKestrel(options =>  
  26.                 {  
  27.                     options.Limits.MaxConcurrentConnections = 1024;  
  28.                     options.Limits.MaxRequestBodySize = 10 * 1024;  
  29.                 })  
  30.                 .Build();  
  31.     }  
  32. }  

安装Nuget包

为了读取xml文件,我们需要安装Microsoft.Extensions.Configuration.Xml

使用

以下代码分别演示读取xml节点的属性以及值得方法

  1. app.Use(async (context,next) => {  
  2.                 Console.WriteLine("网址:"+Configuration["WebSite:Url:des"]);//读取属性  
  3.                 Console.WriteLine("邮箱:"+Configuration["WebSite:Email"]);//读取节点内容  
  4.                 await next.Invoke();                  
  5.             });  
温馨提示

读取xml不需要最外层跟节点,否则会返回null

本文地址:https://www.lisen.me/asp-net-core-reads-the-xml-file.html
版权声明:本文为原创文章,版权归 木子网 所有,欢迎分享本文,转载请保留出处!

发表评论


表情