在工作中,我们有用于生产和开发环境的不同数据库。这些数据库具有相同的架构,但数据却大不相同。
我们有多个“行为变量”,在后端,它们会导致这样的代码
switch(row.ProcessID)
{
case 1:
buy();
break;
case 2:
sell();
break;
}
当然,这里的问题是用于生产的相同代码应该看起来像这样
switch(row.ProcessID)
{
case 2:
buy();
break;
case 8:
sell();
break;
}
问题是我如何处理那些在开发和生产中不同的 ID?
答案 0 :(得分:0)
您可以注入 IWebHostEnvironment
以使用 IsDevelopment()
和 IsProduction()
扩展来满足您的要求:
using Microsoft.Extensions.Hosting;
using Microsoft.AspNetCore.Hosting;
public class HomeController : Controller
{
private readonly IWebHostEnvironment _env;
public HomeController(IWebHostEnvironment env)
{
_env = env;
}
public async Task<IActionResult> Index()
{
switch (row.ProcessID)
{
case 1:
buy();
break;
case 2:
if (_env.IsDevelopment())
{
sell();
}
else
{
buy();
}
break;
case 8:
sell();
break;
}
}
}
如果您使用 asp.net core 2.x,则需要使用 IHostingEnvironment
。