如何访问 configureServices 中的配置

Sea*_*ron 3 f# f#-giraffe

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

这是SAFE 模板通过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
Run Code Online (Sandbox Code Playgroud)

Foo*_*ole 5

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

let serviceProvider = services.BuildServiceProvider()
let config = serviceProvider.GetService<IConfiguration>()
Run Code Online (Sandbox Code Playgroud)

  • 对于 C#,这帮助我弄清楚如何在不利用依赖项注入并在 Program.cs 内执行所有配置并取消 Startup.cs 时从 ConfigureServices 内部访问 IConfiguration。这是我在 .ConfigureServices(...) 调用中添加的代码行:`IConfiguration configuration = services.BuildServiceProvider().GetService&lt;IConfiguration&gt;();` (2认同)