Для .NET Core 2.x вам необходимо настроить конфигурацию при запуске, как показано ниже
public partial class Startup
{
public static IConfiguration Configuration;
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
...
}
Затем получить доступ, как показано ниже
Configuration.GetConnectionString("System")
Вам также должны быть проложены строки подключениякак показано ниже.
"ConnectionStrings": {
"System": "{connection String}"
}
Это позволит использовать несколько строк при необходимости, но работать, даже если у вас есть только одна.
РЕДАКТИРОВАТЬ: Как только вы получите строку, как говорит ColinMв его ответе вам нужно зарегистрировать строку с классом, который вы можете добавить в свои классы.При запуске, как показано ниже.
services.AddSingleton<IConnectionStringFactory, ConnectionStringFactory>(serviceProvider => new ConnectionStringFactory(Configuration.GetConnectionString("System")));
Ваш класс строки подключения ...
public class ConnectionStringFactory : IConnectionStringFactory
{
private readonly string _connectionString;
public ConnectionStringFactory(string connectionString)
{
_connectionString = connectionString;
}
public string Invoke()
{
return _connectionString;
}
}
Внедрите в свой класс как ...
public class ClassName
{
private readonly IConnectionStringFactory _connectionStringFactory;
public ClassName(IConnectionStringFactory connectionStringFactory)
{
_connectionStringFactory = connectionStringFactory;
}
...
}
Ваш интерфейсможет быть просто, как показано ниже
public interface IConnectionStringFactory
{
}
Вам не нужно использовать интерфейс, но я бы порекомендовал этот подход