Quiero leer solo una cadena de conexión de un archivo de configuración y para esto agregar un archivo con el nombre "appsettings.json" a mi proyecto y agregar este contenido en él:
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-
WebApplica71d622;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}
En ASP.NET utilicé esto:
var temp=ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
Ahora, ¿cómo puedo leer "DefaultConnection" en C # y almacenarlo en una variable de cadena en .NET Core?
c#
connection-string
asp.net-core-1.0
motevalizadeh
fuente
fuente
Respuestas:
Puede hacer esto con el método de extensión GetConnectionString:
o con una clase estructurada para DI:
Puesta en marcha:
Y luego en el controlador de casa:
con esto en appsettings.json:
fuente
Configure
es un método de extensión. Debería usarse más comúnmente así:services.Configure<SmtpConfig>(Configuration.GetSection("Smtp"));
Claro, es casi lo mismo, pero creo que las personas que no lo saben comenzarán a hacerlo de la manera "incorrecta", usando la línea sin comentar, así que quizás sea mejor eliminar la línea. ;)La respuesta publicada está bien, pero no respondió directamente a la misma pregunta que tenía sobre la lectura en una cadena de conexión. A través de muchas búsquedas, encontré una forma un poco más sencilla de hacer esto.
En Startup.cs
En su controlador, agregue un campo para la configuración y un parámetro para él en un constructor
Ahora, más adelante en su código de vista, puede acceder a él como:
fuente
Consulte el enlace para obtener más información: https://docs.microsoft.com/en-us/ef/core/misiverse/connection-strings
JSON
C # Startup.cs
EDITAR: aspnetcore, a partir de 3.1: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?view=aspnetcore-3.1
fuente
ConnectionStrings
lugar deConnectionString
? Porque cuando utilicéConnectionString
, entonces obtendré nulo.Microsoft.Extensions.Configuration
La forma en que encontré para resolver esto fue usar AddJsonFile en un constructor en el inicio (que le permite encontrar la configuración almacenada en el archivo appsettings.json) y luego usarla para establecer una variable _config privada
Y luego podría configurar la cadena de configuración de la siguiente manera:
Esto está en dotnet core 1.1
fuente
ASP.NET Core ( en mi caso 3.1 ) nos proporciona inyecciones de constructor en controladores , por lo que simplemente puede agregar el siguiente constructor:
Aquí lo que puede parecer appsettings.json:
fuente
Hay otro enfoque. En mi ejemplo, ve algo de lógica empresarial en la clase de repositorio que utilizo con la inyección de dependencia en ASP .NET MVC Core 3.1.
Y aquí quiero obtener
connectiongString
esa lógica empresarial porque probablemente otro repositorio tendrá acceso a otra base de datos.Este patrón le permite en el mismo repositorio de lógica empresarial tener acceso a diferentes bases de datos.
C#
appsettings.json
fuente
Tengo una biblioteca de acceso a datos que funciona con .net core y .net framework.
el truco estaba en los proyectos principales de .net para mantener las cadenas de conexión en un archivo xml llamado "app.config" (también para proyectos web), y marcarlo como 'copiar al directorio de salida',
ConfigurationManager.ConnectionStrings: leerá la cadena de conexión.
fuente
Puede utilizar el método de extensión de configuración: getConnectionString ("DefaultConnection")
https://docs.asp.net/projects/api/en/latest/autoapi/Microsoft/Extensions/Configuration/ConfigurationExtensions/index.html#Microsoft.Extensions.Configuration.ConfigurationExtensions.GetConnectionString
fuente