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.