Saltar al contenido

Cómo leer la conexión string en .NET Core?

Nuestro grupo de especialistas pasados ciertos días de investigación y de recopilar de datos, dimos con los datos necesarios, deseamos que resulte útil para ti para tu trabajo.

Solución:

La respuesta publicada está bien, pero no respondió directamente a la misma pregunta que tenía sobre leer en una conexión. string. Después de mucha búsqueda, encontré una forma un poco más simple de hacer esto.

En Startup.cs

public void ConfigureServices(IServiceCollection services)

    ...
    // Add the whole configuration object here.
    services.AddSingleton(Configuration);

En su controlador, agregue un campo para la configuración y un parámetro para él en un constructor

private readonly IConfiguration configuration;

public HomeController(IConfiguration config) 

    configuration = config;

Ahora, más adelante en su código de vista, puede acceder a él como:

connectionString = configuration.GetConnectionString("DefaultConnection");

Puede hacer esto con el método de extensión GetConnectionString:

string conString = Microsoft
   .Extensions
   .Configuration
   .ConfigurationExtensions
   .GetConnectionString(this.Configuration, "DefaultConnection");

System.Console.WriteLine(conString);

o con una clase estructurada para DI:

public class SmtpConfig

    public string Server  get; set; 
    public string User  get; set; 
    public string Pass  get; set; 
    public int Port  get; set; 

Puesta en marcha:

public IConfigurationRoot Configuration  get; 


// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
    // http://developer.telerik.com/featured/new-configuration-model-asp-net-core/
    // services.Configure(Configuration.GetSection("Smtp"));
    Microsoft.Extensions.DependencyInjection.OptionsConfigurationServiceCollectionExtensions.Configure(services, Configuration.GetSection("Smtp"));

Y luego en el controlador de inicio:

public class HomeController : Controller
{

    public SmtpConfig SmtpConfig  get; 
    public HomeController(Microsoft.Extensions.Options.IOptions smtpConfig)
    
        SmtpConfig = smtpConfig.Value;
     //Action Controller


    public IActionResult Index()
    
        System.Console.WriteLine(SmtpConfig);
        return View();
    

con esto en appsettings.json:

"ConnectionStrings": 
"DefaultConnection": "Server=(localdb)\mssqllocaldb;Database=aspnet-WebApplica71d622;Trusted_Connection=True;MultipleActiveResultSets=true"
,

"Smtp": 
    "Server": "0.0.0.1",
    "User": "[email protected]",
    "Pass": "123456789",
    "Port": "25"
  

Consulte el enlace para obtener más información: https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-strings

JSON

    
      "ConnectionStrings": 
        "BloggingDatabase": "Server=(localdb)\mssqllocaldb;Database=EFGetStarted.ConsoleApp.NewDb;Trusted_Connection=True;"
      ,
    

C# Inicio.cs

public void ConfigureServices(IServiceCollection services)

    services.AddDbContext(options =>
        options.UseSqlServer(Configuration.GetConnectionString("BloggingDatabase")));

EDITAR: aspnetcore, a partir de 3.1: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?view=aspnetcore-3.1

Reseñas y calificaciones

Si posees algún preocupación y disposición de ascender nuestro escrito puedes añadir una explicación y con deseo lo analizaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *