c# - asp - O ConfigurationManager.AppSettings está disponível no.NET Core 2.0?



asp net core access configuration (4)

Eu tenho um método que lê as configurações do meu arquivo de configuração como este:

var value = ConfigurationManager.AppSettings[key];

Ele é bem compilado ao segmentar apenas o .NET Standard 2.0.

Agora preciso de vários destinos, por isso atualizei meu arquivo de projeto com:

<TargetFrameworks>netcoreapp2.0;net461;netstandard2.0</TargetFrameworks>

Mas agora, a compilação falha para netcoreapp2.0 com a seguinte mensagem de erro:

Error   CS0103  The name 'ConfigurationManager' does not exist in the current context   (netcoreapp2.0)

Separadamente, criei um novo aplicativo de console do .NET Core 2.0 (voltado apenas para o .NET Core 2.0), mas da mesma forma parece não haver ConfigurationManager no namespace System.Configuration .

Estou bastante confuso porque está disponível sob o .NET Standard 2.0, então eu esperaria que ele estivesse disponível no .NET Core 2.0, já que o .NET Core 2.0 é compatível com o .NET Standard 2.0.

o que estou perdendo?

https://ffff65535.com


Depois de ter a configuração dos pacotes, você precisará criar um app.config ou web.config e adicionar algo como o seguinte:

<configuration>
  <appSettings>
    <add key="key" value="value"/>
  </appSettings>
</configuration>

Instalei o System.Configuration.ConfigurationManager do Nuget no meu aplicativo .net core 2.2.

Eu então referencio using System.Configuration;

Em seguida, eu mudei

WebConfigurationManager.AppSettings

to ..

ConfigurationManager.AppSettings

Até agora eu acredito que isso está correto. 4.5.0 is typical with .net core 2.2


Sim, o ConfigurationManager.AppSettings está disponível no .NET Core 2.0 após referenciar o pacote NuGet System.Configuration.ConfigurationManager .

Créditos vão para o @JeroenMostert por me dar a solução.


Você pode usar a configuração para resolver isso.

Ex (Startup.cs):

Você pode passar DI aos controladores após esta implementação.

public class Startup
{
    public Startup(IHostingEnvironment env)
    {
        var builder = new ConfigurationBuilder()
        .SetBasePath(env.ContentRootPath)
        .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);

        Configuration = builder.Build();

    }

    public IConfiguration Configuration { get; }

    // This method gets called by the runtime. Use this method to add services to the container.
    public void ConfigureServices(IServiceCollection services)
    {

        var microserviceName = Configuration["microserviceName"];

       services.AddSingleton(Configuration);

       ...
    }




.net-standard