Quero ler apenas uma string de conexão de um arquivo de configuração e, para isso, adicionar um arquivo com o nome "appsettings.json" ao meu projeto e adicionar este conteúdo nele:
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-
WebApplica71d622;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}
No ASP.NET, usei isto:
var temp=ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
Agora, como posso ler "DefaultConnection" em C # e armazená-lo em uma variável de string no .NET Core?
c#
connection-string
asp.net-core-1.0
motevalizadeh
fonte
fonte
Respostas:
Você pode fazer isso com o método de extensão GetConnectionString:
ou com uma classe estruturada para DI:
Comece:
E então no home-controller:
com isso em appsettings.json:
fonte
Configure
é um método de extensão. Deve ser usado mais comumente assim:services.Configure<SmtpConfig>(Configuration.GetSection("Smtp"));
Claro, é quase a mesma coisa, mas acho que as pessoas que não estão cientes vão simplesmente começar a fazer da maneira "errada", usando a linha não comentada, então talvez seja melhor remover a linha. ;)A resposta postada está bem, mas não respondeu diretamente à mesma pergunta que eu tinha sobre a leitura em uma string de conexão. Por meio de muitas pesquisas, descobri uma maneira um pouco mais simples de fazer isso.
Em Startup.cs
Em seu controlador, adicione um campo para a configuração e um parâmetro para ele em um construtor
Agora, mais tarde em seu código de visualização, você pode acessá-lo como:
fonte
Veja o link para mais informações: https://docs.microsoft.com/en-us/ef/core/misc Miscellaneous / connection - strings
JSON
C # Startup.cs
EDIT: aspnetcore, começando 3.1: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?view=aspnetcore-3.1
fonte
ConnectionStrings
vez deConnectionString
? Porque quando eu useiConnectionString
, então estamos ficando nulos.Microsoft.Extensions.Configuration
(3.1.5)A maneira que encontrei para resolver isso foi usar AddJsonFile em um construtor no Startup (que permite encontrar a configuração armazenada no arquivo appsettings.json) e, em seguida, usar isso para definir uma variável _config privada
E então eu poderia definir a string de configuração da seguinte maneira:
Isso está no dotnet core 1.1
fonte
ASP.NET Core ( no meu caso 3.1 ) nos fornece injeções de Construtor em Controladores , então você pode simplesmente adicionar o seguinte construtor:
Aqui, qual pode ser a aparência de appsettings.json:
fonte
Existe outra abordagem. No meu exemplo, você vê alguma lógica de negócios na classe de repositório que uso com injeção de dependência no ASP .NET MVC Core 3.1.
E aqui eu quero obter
connectiongString
essa lógica de negócios porque provavelmente outro repositório terá acesso a outro banco de dados.Este padrão permite que você, no mesmo repositório de lógica de negócios, tenha acesso a diferentes bancos de dados.
C #
appsettings.json
fonte
Eu tenho uma biblioteca de acesso a dados que funciona com o .net core e .net framework.
o truque estava em projetos centrais .net para manter as strings de conexão em um arquivo xml chamado "app.config" (também para projetos web) e marcá-lo como 'copiar para o diretório de saída',
ConfigurationManager.ConnectionStrings - lerá a string de conexão.
fonte
Você pode usar o método de extensão de configuração: getConnectionString ("DefaultConnection")
https://docs.asp.net/projects/api/en/latest/autoapi/Microsoft/Extensions/Configuration/ConfigurationExtensions/index.html#Microsoft.Extensions.Configuration.ConfigurationExtensions.GetConnectionString
fonte