.NET 응용 프로그램 구성 및 작업으로 사용됩니다.
발표자에게 주어진 주제
클래스 구성이 필요합니까?
A classe Configuration ficam disponíveis através desse package: "Microsoft.Extensions.Configuration"
A estrutura de uma configuração é um dicionário com chave/valor, onde a chave semper sera uma string, e valor um dado string ou um dicionário. 예를 들면 다음과 같습니다.
{
"Secao1": {
"ChaveA": "Valor da chave A",
"ChaveB": "Valor da chave B"
},
"Secao2": {
"SubSecao": {
"ChaveA": "Valor da subsecção chave A"
}
}
}
Para recuperar os valores podemos utilizar o padrão dessa maneira.
Definindo as opções na prática, após criar um projeto .Net Web, vamos até o arquivo "appsettings.json"
Observação: Percebe que temos dois arquivos appsettings, um ".json" e outro ".Development.json" eles seguem o padrão de carregamento que, caso seja informado algum valor na variável de lançamento ASPNETCORE_ENVIRONMENT, ele tentará ler o appsettings dessa variável e dará preferencia na busca, caso não consiga ira utilizar o "padrão", "appsettings.json".
Definiremos alguns valores de configuração dentro de um arquivo JSON, que será carregado quando nosso aplicativo for iniciado. Criei um controller, e fiz a injecção de interface da interface IConfiguration através do constructor, com ela temos o metodo GetValue, e através dele recuperei o valor da nossa mensagem.
Observação: Alterar os valores do "appsettings.json", não gera a necessidade de recompilar a aplicação.
GetSection 방법을 활용하고 GetValue를 혁신적으로 활용하는 방법:
Vamos implementar algo um pouco mais complexo, nosso "feature flag"de demonstração, adicionei as seguinte opções na nossa configuração:
{
// ...código omitido
"Features" : {
"HelloWorldService": {
"EnableService": false,
"Messages": {
"Default": "Hello World :)",
"Disable": "Sorry, but I'm disabled ;("
}
}
}
}
Criei uma interface para o serviço e duas implementação dessa 인터페이스:
public interface IHelloWorldService
{
string SayHello();
}
public class HelloWorldService : IHelloWorldService
{
private readonly IConfiguration _configuration;
public HelloWorldService(IConfiguration configuration)
{
_configuration = configuration;
}
public string SayHello() => _configuration.GetValue<string>("Features:HelloWorldService:Messages:Default");
}
public class DisableHelloWorldService : IHelloWorldService
{
private readonly IConfiguration _configuration;
public DisableHelloWorldService(IConfiguration configuration)
{
_configuration = configuration;
}
public string SayHello() => _configuration.GetValue<string>("Features:HelloWorldService:Messages:Disable");
}
Program.cs에 대한 해결책 정의:
// ...codigo omitido
if (builder.Configuration.GetValue<bool>("Features:HelloWorldService:EnableService"))
{
builder.Services.TryAddSingleton<IHelloWorldService, HelloWorldService>();
}
else
{
builder.Services.TryAddSingleton<IHelloWorldService, DisableHelloWorldService>();
}
참조 및 학점:
Reference
이 문제에 관하여(.NET 응용 프로그램 구성 및 작업으로 사용됩니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/paulowalravendev/como-utilizar-as-configuracoes-e-opcoes-de-um-aplicacao-net--5edh텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)