物理文件是我们最常用到的原始配置的载体,最佳的配置文件格式主要由三种,它们分别是JSON、XML和INI,对应的配置源类型分别是JsonConfigurationSource、XmlConfigurationSource和IniConfigurationSource。但是对于.NET Core的配置系统来说,我们习以为常的XML反倒不是理想的配置源,至少和JSON比较起来,它具有一个先天不足的劣势,那就是针对集合数据结构的支持不如人意。[ 本文已经同步到《ASP.NET Core框架揭秘》之中]

在《配置模型设计详解》一文中我们对配置模型的设计和实现进行了详细介绍。在此文中我们说应用中的配置体现为一种树形化的层次结构,所我将它称为“配置树”,具体的配置数据通过配置树的“叶子节点”承载。当配置数据从不同的来源加载之后都会转换成一个字典,我将其称为“配置字典”。为了让“配置字典”能够存储“配置树”的所有数据和自身结构,我们需要在配置字典中存储所有叶子节点,叶子节点的路径和值将直接作为字典元素的Key和Value。由于字典的Key是唯一的,这就要求配置树中的每一个节点必须具有唯一的路径。XmlConfigurationSource/XmlConfigurationProvider不能很好地支持集合数据结构的问题就出现在这里。

class Profile
   2: {
public Gender         Gender { get; set; }
int            Age { get; set; }
public ContactInfo    ContactInfo { get; set; }
   6: }
   7:  
class ContactInfo
   9: {
string EmailAddress { get; set; }
string PhoneNo { get; set; }
  12: }
  13:  
enum Gender
  15: {
  16:     Male,
  17:     Female
  18: }

相关文章:

  • 2022-03-05
  • 2021-12-20
  • 2021-07-29
  • 2021-09-07
猜你喜欢
  • 2021-12-31
  • 2021-08-29
  • 2021-07-04
相关资源
相似解决方案