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

将配置文件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#后台接受前台JSON字符串装换成字典集合处理

    C#后台接收前台JSON字符串,可以通过Newtonsoft.Json等第三方库实现。下面是一些处理JSON字符串的实践方案。 1. 将JSON字符串转化为字典(Dictionary)集合 可以先定义一个自定义类的静态方法,将JSON数据作为参数传入,通过Newtonsoft.Json库中的JsonConvert.DeserializeObject方法将JS…

    C# 2023年5月31日
    00
  • .NET 6新特性试用之Nuget包验证

    .NET 6 新特性试用之 Nuget 包验证攻略 Nuget 包是 .NET 开发中不可或缺的一部分,它们提供了许多有用的功能和工具,可以帮助我们更轻松地开发 .NET 应用程序。在 .NET 6 中,有一些新的 Nuget 包验证特性,可以帮助我们更好地管理和验证我们的 Nuget 包。以下是 .NET 6 新特性试用之 Nuget 包验证的完整攻略: …

    C# 2023年5月17日
    00
  • c# 调用Win32Api关闭当前应用的方法

    为了关闭当前应用程序,我们可以使用Win32 API的ExitProcess函数。下面是处理步骤的完整攻略。 1.引入命名空间 首先需要在程序文件中引入System.Runtime.InteropServices 命名空间。这个命名空间提供的平台调用工具允许我们在C#中调用Win32 API。 using System.Runtime.InteropServ…

    C# 2023年5月15日
    00
  • C#中out保留字用法实例分析

    下面我将详细讲解一下C#中out保留字的使用方法和实例分析。 什么是out保留字? out是C#中的一个保留字,表示这是一个输出参数。 out保留字用法示例 示例一 private static void OutParamExample(out int x) { x = 5; } static void Main(string[] args) { int y…

    C# 2023年5月31日
    00
  • C#前端验证和后台验证代码实例

    下面是关于”C#前端验证和后台验证代码实例”的完整攻略: 前言 在开发Web应用程序时,数据的正确性对整个应用程序的安全具有重要意义。为了提高Web应用程序的健壮性,我们需要在前端和后台分别对用户输入的数据进行验证。本文将演示C#如何通过前端验证和后台验证确保用户输入的数据的准确性。 前端验证 在前端验证中,我们使用JavaScript代码来检查用户输入的数…

    C# 2023年5月31日
    00
  • 【开源游戏】Legends-Of-Heroes 基于ET 7.2的双端C#(.net7 + Unity3d)多人在线英雄联盟风格的球球大作战游戏。

    Legends-Of-Heroes 一个LOL风格的球球大作战游戏,基于ET7.2,使用状态同步  Main 基于C#双端框架[ET7.2],同步到ET主干详情请看日志。(https://github.com/egametang/ET) 注意:已经升级.Net7,请安装.Net7 SDK. 此游戏为ET7.2的一个实践项目demo,玩法主要是球球大作战类型的…

    C# 2023年5月9日
    00
  • ASP.NET Core程序发布到Linux生产环境详解

    ASP.NET Core程序发布到Linux生产环境详解 在本攻略中,我们将详细介绍如何将ASP.NET Core程序发布到Linux生产环境中。我们将介绍两种不同的发布方式,并提供两个示例说明。 准备工作 在将ASP.NET Core程序发布到Linux生产环境之前,需要进行以下准备工作: 安装Linux操作系统。 安装.Net Core运行时。 安装Ng…

    C# 2023年5月16日
    00
  • sql 语句 取数据库服务器上所有数据库的名字

    要取数据库服务器上所有数据库的名字,可以使用以下 SQL 语句: SHOW DATABASES; 执行这条语句将返回一个包含所有数据库名字的列表。 示例1:获取所有数据库的名字 SHOW DATABASES; 执行结果类似于下面这样: +——————–+ | Database | +——————–+ | i…

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