C#将配置文件appsetting中的值转换为动态对象调用

yizhihongxing

将配置文件appsettings中的值转换为动态对象调用,可以使用C#中的Configuration API和ExpandoObject类。

以下是具体实现步骤:

1、添加配置文件

在项目的根目录下,添加一个名为appsettings.json的文件,用于存储应用程序的配置信息:

{
  "AppSettings": {
    "MyKey": "MyValue",
    "MyInt": 123,
    "MyBool": true
  }
}

2、创建Configuration实例

使用Configuration API加载配置文件,创建Configuration实例:

var builder = new ConfigurationBuilder()
    .SetBasePath(Directory.GetCurrentDirectory())
    .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);

var config = builder.Build();

3、获取配置文件中的值

使用Configuration实例和键名获取配置文件中的值:

string myValue = config["AppSettings:MyKey"];
int myInt = config.GetValue<int>("AppSettings:MyInt");
bool myBool = config.GetValue<bool>("AppSettings:MyBool");

4、将配置值转换为动态对象

使用ExpandoObject类,将配置值转换为动态对象:

dynamic settings = new ExpandoObject();
settings.MyKey = myValue;
settings.MyInt = myInt;
settings.MyBool = myBool;

5、动态调用配置值

使用动态对象,并通过键名动态调用配置值:

Console.WriteLine(settings.MyKey);
Console.WriteLine(settings.MyInt);
Console.WriteLine(settings.MyBool);

具体的代码示例:

using System;
using System.Dynamic;
using System.IO;
using Microsoft.Extensions.Configuration;

namespace MyApp
{
    class Program
    {
        static void Main(string[] args)
        {
            var builder = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);

            var config = builder.Build();

            string myValue = config["AppSettings:MyKey"];
            int myInt = config.GetValue<int>("AppSettings:MyInt");
            bool myBool = config.GetValue<bool>("AppSettings:MyBool");

            dynamic settings = new ExpandoObject();
            settings.MyKey = myValue;
            settings.MyInt = myInt;
            settings.MyBool = myBool;

            Console.WriteLine(settings.MyKey);   // 输出 MyValue
            Console.WriteLine(settings.MyInt);   // 输出 123
            Console.WriteLine(settings.MyBool);  // 输出 True
        }
    }
}

以上就是如何将配置文件appsettings中的值转换为动态对象调用的完整攻略。

下面给出另一个示例代码,演示如何在ASP.NET Core中使用IConfiguration,将appsettings.json文件的配置信息注入到应用程序的控制器中:

using System;
using System.Dynamic;
using System.IO;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;

namespace MyApp.Controllers
{
    public class HomeController : Controller
    {
        private readonly IConfiguration _config;

        public HomeController(IConfiguration config)
        {
            _config = config;
        }

        public IActionResult Index()
        {
            string myValue = _config["AppSettings:MyKey"];
            int myInt = _config.GetValue<int>("AppSettings:MyInt");
            bool myBool = _config.GetValue<bool>("AppSettings:MyBool");

            dynamic settings = new ExpandoObject();
            settings.MyKey = myValue;
            settings.MyInt = myInt;
            settings.MyBool = myBool;

            return View(settings);
        }
    }
}

在该控制器中,使用ASP.NET Core提供的依赖注入功能,注入IConfiguration实例,然后将appsettings.json文件中的配置信息转换为动态对象。

最后,将动态对象传递到视图中,以便在前端界面上显示这些配置信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#将配置文件appsetting中的值转换为动态对象调用 - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • C# File.WriteAllText()方法: 将文本写入指定文件

    C#中File.WriteAllText()的作用和使用方法 作用 C#中的File.WriteAllText()方法是一个静态方法,用于将指定的文本内容写入指定的文件,并使用一个指定的编码。 使用方法 语法如下: public static void WriteAllText(string path, string content); public sta…

    C# 2023年4月19日
    00
  • C# 列表List的常用属性和方法介绍

    C# 列表List的常用属性和方法介绍 什么是列表List 在C#中,列表List是常用的集合类型,用于存储一组有序的数据。List类提供了一系列常用的属性和方法,使我们可以方便地对列表进行操作。 如何创建列表List 使用List类创建一个列表,需要注意以下几点: 指定列表元素的类型。 使用new运算符来实例化List对象。 以下是示例代码: List&l…

    C# 2023年5月31日
    00
  • C#编程实现Excel文档中搜索文本内容的方法及思路

    C#编程实现Excel文档中搜索文本内容的方法及思路 在 C# 编程中,实现搜索 Excel 文档中的文本内容是一个常见的需求。本文将介绍如何使用 C# 进行 Excel 文档的搜索文本内容,并附带两个示例说明。 思路 实现搜索 Excel 文档中的文本内容,可以采用以下步骤: 打开需要搜索的 Excel 文档。 遍历 Excel 文档中的所有单元格,查找包…

    C# 2023年6月8日
    00
  • 基于NPOI用C#开发的Excel以及表格设置

    基于NPOI用C#开发的Excel以及表格设置攻略 NPOI是一款开源的基于.NET平台的Excel文件读写库,可以方便地操作Excel文件。本攻略将介绍如何通过NPOI用C#来实现Excel的读写和表格设置。 一、安装NPOI库 1.新建项目并打开NuGet包管理控制台; 2.在NuGet控制台中输入“Install-Package NPOI”并确认; 3…

    C# 2023年5月15日
    00
  • C# datagrid非常规方法实现添加合并列

    C# 的 Datagrid 是一个非常强大的控件,但是由于它的灵活性,有时候我们需要实现一些非常规的功能,例如实现添加合并列。下面是一份完整攻略。 步骤一:准备工作 在使用非常规方法实现添加合并列之前,我们需要先明确几件事情,分别是: 我们需要使用到 WPF 的 DataGrid 控件,而不是 WinForms 的 DataGridView 控件; 我们需要…

    C# 2023年6月6日
    00
  • Unity 从UI中拖拽对象放置并拖动效果 附demo

    Unity 中从UI中拖拽对象放置并拖动是一种常见的交互方式,在一些游戏和应用程序中都可以看到这种效果。以下是实现此效果的攻略: 准备阶段 在开始实现之前,首先需要准备好以下材料: Unity 编辑器:用于创建界面和脚本编写。 一个 Unity 项目:用于实现代码的编写和测试。 编辑器中的基础 UI 元素:例如基础按钮、文本、图像等。 UI 元素用于拖拽的物…

    C# 2023年6月3日
    00
  • C#实现简易画图板的示例代码

    下面我将为您详细讲解“C#实现简易画图板的示例代码”的完整攻略。 1. 分析需求 在我们开始编写代码之前,首先需要分析我们的需求,明确我们需要实现什么功能。在这个例子中,我们需要实现一个简易的画图板,其中主要涵盖以下功能: 绘制直线、矩形、圆形等基本图形 选择画笔颜色和大小 橡皮擦功能 保存绘图结果 2. 准备工作 在开始编写代码之前,我们需要先完成一些准备…

    C# 2023年5月31日
    00
  • 解决C#中Linq GroupBy 和OrderBy失效的方法

    我将为你提供详细的攻略来解决C#中Linq GroupBy和OrderBy失效的问题。 问题描述 在使用Linq语句进行分组(GroupBy)和排序(OrderBy)操作时,有时会发现这些操作似乎没有生效,导致结果不符合预期。造成这种情况的原因是Linq语句中的默认比较方法(Comparer)可能无法正确处理对象的相等性或大小关系,从而导致分组和排序操作失败…

    C# 2023年6月1日
    00
合作推广
合作推广
分享本页
返回顶部