更改环境变量 运行 TIME
Change environment variable RUN TIME
如何更改环境变量 运行 TIME?
使用登录页面我选择开发或生产。
基于此 我必须专门使用我的 ConnectionString 设备。
"ConnectionStrings": {
"PROJECTNAME_Development": "SERVER_DETAILS",
"PROJECTNAME_Production": "SERVER_DETAILS",
}
这是我的 LoginServices.CS 文件
public class LoginService: ILoginService
{
private readonly string _connectionString = string.Empty;
private readonly IConfiguration _configuration;
}
public LoginService (IConfiguration configuration)
{
_configuration = configuration;
//If ADMIN SELECT Development
_connectionString = _configuration.GetConnectionString("PROJECTNAME_Development");
//If ADMIN SELECT Production
_connectionString = _configuration.GetConnectionString("PROJECTNAME_Production");
}
更新 1
我试过这段代码。 它工作正常,但是有没有其他方法,比如我在一个位置进行更改并更新环境变量值。
我的控制器
[HttpPost]
public IActionResult Login(LoginModel model)
{
try
{
if (ModelState.IsValid)
{
model.DevelopmentServer = "Development";
// model.DevelopmentServer = "Production";
...
var Result = ILoginService.AdminLogin(model);
public LoginService(IConfiguration configuration, IOptions<ConnectionStringDetails> connectionStrings)
{
_proDBCon = connectionStrings.Value.PROJECTNAME_Development;
_proDBConProduction = connectionStrings.Value.PROJECTNAME_Production;
}
在同一个文件中LoginService.cs文件
public LoginInfo AdminLogin(LoginModel model)
{
if (model.DevelopmentServer == "Development") {
_connectionString = _proDBCon;
}
else {
_connectionString = _proDBConProduction;
}
}
假设您需要不惜一切代价在 UI 的两个数据库之间切换,您将无法完全使用 containers/injections 来完成它。您必须使用从 UI 传递的值来确定应使用哪个数据库连接字符串。
public class LoginService {
// ...
private string GetConnectionString(string connectionStringNameFromUi){
return _configuration.GetConnectionString
}
}
同时,我会考虑部署一个应用程序的两个独立实例,一个为开发配置,另一个为生产配置。这样,您将获得更多开箱即用的功能(注入容器和环境配置)。
如何更改环境变量 运行 TIME? 使用登录页面我选择开发或生产。 基于此 我必须专门使用我的 ConnectionString 设备。
"ConnectionStrings": {
"PROJECTNAME_Development": "SERVER_DETAILS",
"PROJECTNAME_Production": "SERVER_DETAILS",
}
这是我的 LoginServices.CS 文件
public class LoginService: ILoginService
{
private readonly string _connectionString = string.Empty;
private readonly IConfiguration _configuration;
}
public LoginService (IConfiguration configuration)
{
_configuration = configuration;
//If ADMIN SELECT Development
_connectionString = _configuration.GetConnectionString("PROJECTNAME_Development");
//If ADMIN SELECT Production
_connectionString = _configuration.GetConnectionString("PROJECTNAME_Production");
}
更新 1 我试过这段代码。 它工作正常,但是有没有其他方法,比如我在一个位置进行更改并更新环境变量值。
我的控制器
[HttpPost]
public IActionResult Login(LoginModel model)
{
try
{
if (ModelState.IsValid)
{
model.DevelopmentServer = "Development";
// model.DevelopmentServer = "Production";
...
var Result = ILoginService.AdminLogin(model);
public LoginService(IConfiguration configuration, IOptions<ConnectionStringDetails> connectionStrings)
{
_proDBCon = connectionStrings.Value.PROJECTNAME_Development;
_proDBConProduction = connectionStrings.Value.PROJECTNAME_Production;
}
在同一个文件中LoginService.cs文件
public LoginInfo AdminLogin(LoginModel model)
{
if (model.DevelopmentServer == "Development") {
_connectionString = _proDBCon;
}
else {
_connectionString = _proDBConProduction;
}
}
假设您需要不惜一切代价在 UI 的两个数据库之间切换,您将无法完全使用 containers/injections 来完成它。您必须使用从 UI 传递的值来确定应使用哪个数据库连接字符串。
public class LoginService {
// ...
private string GetConnectionString(string connectionStringNameFromUi){
return _configuration.GetConnectionString
}
}
同时,我会考虑部署一个应用程序的两个独立实例,一个为开发配置,另一个为生产配置。这样,您将获得更多开箱即用的功能(注入容器和环境配置)。