更改环境变量 运行 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
   }
}

同时,我会考虑部署一个应用程序的两个独立实例,一个为开发配置,另一个为生产配置。这样,您将获得更多开箱即用的功能(注入容器和环境配置)。