首页 > 解决方案 > 我可以读取项目中所有 appsettings 文件的文件名吗

问题描述

我有一个 appsettings 文件,其中包含应用程序中使用的每个环境的所有设置。

IE:

这些 appsettings 文件中的每一个都有连接字符串和其他配置设置。
我有一个控制台应用程序,我想根据项目中的文件生成要显示的环境列表。

控制台应用程序将打印出环境列表:

有没有办法可以读取我的 appsettings 文件的名称并在我的控制台应用程序中使用它?

标签: c#

解决方案


如果这些文件在您的项目中被指定为资源文件,您可以获取它们。

在您的项目中,单击每个文件。在每个文件的属性中,都有一个“构建操作”选项。您可以将其设置为“嵌入式资源”(除其他外)。

foreach (var x in System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceNames())
   Console.WriteLine(x);

这将转储应用程序中的所有资源。格式将是基于 dotted.folder.file 约定的文件的路径。前任

YourApp.SomeSubFolder.YourAppSettings.YourJSONFile1.json
YourApp.SomeSubFolder.YourAppSettings.YourJSONFile2.json
etc.

要实际读取该文件的内容,您可以通过 ex 执行以下操作:

using (var ms = Assembly.GetExecutingAssembly()
                        .GetManifestResourceStream( "YourApp.SomeSubFolder.YourAppSettings.YourJSONFile1.json"))
{
   if (ms != null)
   {
      // if the memory stream is good, setup a stream reader to get the content
      var sr = new StreamReader(ms);
      var readContents = sr.ReadToEnd();

      // now you have a string of the json file to work with
   }
}

推荐阅读