如何在 configureServices 中访问配置

How to access configuration in configureServices

您将如何从 Giraffe-FSharp 中的 configureServices 方法内部访问配置?

这是 SAFE template 通过 dotnet new SAFE -lang F# --server giraffe 创建的 Giraffe 设置的节选部分:

let configureServices (services : IServiceCollection) =
    services.AddCors()                  |> ignore
    services.AddGiraffe()               |> ignore
    // Want to access configuration here.



[<EntryPoint>]
let main _ =
    let contentRoot = Directory.GetCurrentDirectory()
    let webRoot     = Path.Combine(contentRoot, "WebRoot")

    WebHostBuilder()
        .UseKestrel()
        .UseContentRoot(contentRoot)
        .UseIISIntegration()
        .UseWebRoot(webRoot)
        .Configure(Action<IApplicationBuilder> configureApp)
        .ConfigureAppConfiguration(Action<WebHostBuilderContext, IConfigurationBuilder> configureAppConfig)
        .ConfigureServices(configureServices)
        .ConfigureLogging(configureLogging)
        .Build()
        .Run()
    0

从服务集合中获取服务提供者,然后使用它来获取配置:

let serviceProvider = services.BuildServiceProvider()
let config = serviceProvider.GetService<IConfiguration>()