0

我需要从 MAUI 应用程序中的 appsettings.json 文件中检索我的应用程序设置。我将它标记为 MauiAsset 生成操作,我可以在生成的 apk 的资产目录中看到它。它似乎在 ConfigureAppConfiguration 中不可用,并且不存在将其添加到应用程序构建器中的 AddJsonFile 扩展。

  • 我应该使用另一代操作吗?

  • 找回它的好方法是什么?

      public void Configure(IAppHostBuilder appBuilder)
      {
          appBuilder
              .ConfigureAppConfiguration((app, config) =>
              {
                  // I should be able to work with appsettings here
              })
              .ConfigureServices(svcs =>
              {
    
              })
              .UseMauiApp<App>();
      }
    
4

2 回答 2

0

看起来好像是几天前才在这个 PRConfigureAppConfiguration中添加的。它可能会出现在下一个版本中。

如果您现在真的需要它,您可以将其添加为嵌入式资源并自己从 JSON 进行反序列化。如果您可以等待更长的时间,您可能想要这样做。

于 2021-09-01T13:14:13.170 回答
0

MauiAppBuilder.Host使用getter可以获得通常的主机构建器。

var builder = MauiApp.CreateBuilder();
builder
    .ConfigureFonts(fonts =>
    {
        fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
    })
    .UseMauiApp<App>()
    .Host
    .ConfigureAppConfiguration((app, config) =>
    {
        config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
    })
    .ConfigureServices((ctx, svcs) =>
    {

    })
    .ConfigureLogging(logging =>
    {
        logging.AddSerilog();
    });

要获取应用位置和应用设置路径,请使用以下命令:

Assembly CallingAssembly = Assembly.GetEntryAssembly();
Version VersionRuntime = CallingAssembly.GetName().Version;
string AssemblyLocation = Path.GetDirectoryName(CallingAssembly.Location);
string ConfigFile = Path.Combine(AssemblyLocation, "appsettings.json");
于 2021-10-05T13:01:19.963 回答