Em appsettings.json
{
"MyArray": [
"str1",
"str2",
"str3"
]
}
Em Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IConfiguration>(Configuration);
}
Em HomeController
public class HomeController : Controller
{
private readonly IConfiguration _config;
public HomeController(IConfiguration config)
{
this._config = config;
}
public IActionResult Index()
{
return Json(_config.GetSection("MyArray"));
}
}
Existem os meus códigos acima, fiquei nulo Como obter a matriz?
"Clients": [ {..}, {..} ]
, você deve chamarConfiguration.GetSection("Clients").GetChildren()
."Clients": [ "", "", "" ]
, você deve chamar.GetSection("Clients").GetChildren().ToArray().Select(c => c.Value).ToArray()
.var clients = Configuration.GetSection("Clients").GetChildren() .Select(clientConfig => new Client { ClientId = clientConfig["ClientId"], ClientName = clientConfig["ClientName"], ... }) .ToArray();
Você pode instalar os dois pacotes NuGet a seguir:
E então você terá a possibilidade de usar o seguinte método de extensão:
fonte
_config.GetSection("AppUser").Get<AppUser[]>();
Adicione um nível no seu appsettings.json:
Crie uma classe representando sua seção:
Na classe de inicialização do aplicativo, vincule seu modelo e injete-o no serviço de DI:
E no seu controlador, obtenha seus dados de configuração no serviço de DI:
Você também pode armazenar todo o seu modelo de configuração em uma propriedade em seu controlador, se precisar de todos os dados:
O serviço de injeção de dependência do ASP.NET Core funciona como um encanto :)
fonte
MySettings
na inicialização?Se você tiver uma matriz de objetos JSON complexos como este:
Você pode recuperar as configurações desta maneira:
fonte
Isso funcionou para eu retornar uma matriz de strings da minha configuração:
Minha seção de configuração fica assim:
fonte
No caso de retornar uma matriz de objetos JSON complexos da configuração, adaptei a resposta de @ djangojazz para usar tipos anônimos e dinâmicos em vez de tuplas.
Dada uma seção de configurações de:
Você pode retornar a matriz de objetos desta maneira:
fonte
Tipo de pergunta antiga, mas posso dar uma resposta atualizada para o .NET Core 2.1 com padrões C # 7. Digamos que eu tenha uma listagem apenas em appsettings.Development.json, como:
Posso extraí-los em qualquer lugar em que o Microsoft.Extensions.Configuration.IConfiguration seja implementado e conectado da seguinte maneira:
Agora eu tenho uma lista de um objeto bem digitado que está bem digitado. Se eu for testUsers.First (), o Visual Studio agora deve mostrar opções para 'UserName', 'Email' e 'Password'.
fonte
No ASP.NET Core 2.2 e posterior, podemos injetar a IConfiguration em qualquer lugar do aplicativo, como no seu caso, você pode injetar a IConfiguration no HomeController e usá-lo dessa maneira para obter a matriz.
fonte
Você pode obter o array direto sem incrementar um novo nível na configuração:
fonte
Forma curta:
Retorna uma matriz de string:
fonte
Isso funcionou para mim; Crie algum arquivo json:
Em seguida, defina alguma classe que mapeia:
pacotes de pepitas:
Em seguida, carregue-o:
fonte