net6 webapi工程开发工具类
创始人
2024-06-03 09:43:04
0

文章目录

      • 将对象实例化成json文件
      • 获取应用程序所在目录的三种方式
      • 读取appsettings配置文件

将对象实例化成json文件

  1. 从NuGet上下载JSON .Net,安装到所需项目中,安装其它包也可以
  2. 创建文件
// 获取当前程序所在路径,并将要创建的文件命名为info.json 
string fp = System.Windows.Forms.Application.StartupPath + "\\info.json";
if (!File.Exists(fp))  // 判断是否已有相同文件
{FileStream fs1 = new FileStream(fp, FileMode.Create, FileAccess.ReadWrite);  fs1.Close();
}
  1. 序列化对象存储到json文件中
string fp = System.Windows.Forms.Application.StartupPath + "\\info.json";
File.WriteAllText(fp, JsonConvert.SerializeObject(obj));
  1. 从文件中读取对象信息(反序列化即可)
string fp = System.Windows.Forms.Application.StartupPath + "\\info.json";
Object obji = JsonConvert.DeserializeObject(File.ReadAllText(fp));  // 尖括号<>中填入对象的类名 
 

获取应用程序所在目录的三种方式

  1. 第一种
string basePath1 = AppContext.BaseDirectory;
// D:\后端项目\testCore\test.WebApi\bin\Debug\net6.0\
  1. 第二种
string basePath2 =Path.GetDirectoryName(typeof(Program).Assembly.Location);
// D:\后端项目\testCore\test.WebApi\bin\Debug\net6.0\
  1. 第三种:从ASP.NET Core RC2开始,可以通过依赖注入 IHostingEnvironment 服务对象来取得Web根目录和内容根目录的物理路径
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;namespace AspNetCorePathMapping
{public class HomeController : Controller{private readonly IHostingEnvironment _hostingEnvironment;public HomeController(IHostingEnvironment hostingEnvironment){_hostingEnvironment = hostingEnvironment;}public ActionResult Index(){string webRootPath = _hostingEnvironment.WebRootPath;string contentRootPath = _hostingEnvironment.ContentRootPath;// webRootPath: D:\后端项目\testCore\test.WebApi\wwwroot// contentRootPath: D:\后端项目\testCore\test.WebApireturn Content(webRootPath + "\n" + contentRootPath);}}
}

读取appsettings配置文件

  1. 首先,创建 ConfigHelper类
namespace TestProject.services
{public class ConfigHelper{private static IConfiguration _config;public ConfigHelper(IConfiguration configuration){_config = configuration;}/// /// 读取appsettings.json文件中指定节点信息/// /// /// public static string ReadAppSettings(params string[] sessions){try{if (sessions.Any()){return _config[string.Join(":",sessions)];}}catch{return "";}return "";}/// /// 读取实体信息/// /// /// /// public static List ReadAppSettings(params string[] session){List list = new List();_config.Bind(string.Join(":",session),list);return list;}}
}
  1. 然后在Program.cs中添加如下代码注入服务
var builder = WebApplication.CreateBuilder(args);IConfiguration configuration = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build();builder.Services.AddSingleton(new ConfigHelper(configuration));
  1. 在 appsettings.json中添加如下代码
{"Logging": {"LogLevel": {"Default": "Information","Microsoft.AspNetCore": "Warning"}},"AllowedHosts": "*","Test": {"testStr1": "testvalue1","testStr2": "testvalue2"},
}
  1. 最后,可以在项目的任意地方读取配置文件数据
string str = ConfigHelper.ReadAppSettings("Test", "testStr1");
  1. 得到 str 的值为 testvalue1

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...