C# 一次启动下的不同种子
情况是这样的:我有一个方法:C# 一次启动下的不同种子,c#,.net-core,C#,.net Core,情况是这样的:我有一个方法: public startic class ServiceFactory { public static void IWebHostBuilder Foo() { return WebHost.CreateDefaultBuilder() .UseEnvironment("someEnv") .UseStartup<SomeStartup>()
public startic class ServiceFactory
{
public static void IWebHostBuilder Foo()
{
return WebHost.CreateDefaultBuilder()
.UseEnvironment("someEnv")
.UseStartup<SomeStartup>()
.ConfigureServices(ConfigureServices);
}
}
你有什么建议吗?也许你可以像往常一样使用环境变量?添加IHostingEnvironment以在环境中配置方法:
public void Configure(IHostingEnvironment env, ... )
{
if (env.IsDevelopment())
{
// seed1
}
else
{
// seed2
}
// or like this
if (!env.IsEnvironment("EF_MIGRATIONS"))
{
// seed3
}
// or some other variable
var p = Environment.GetEnvironmentVariable("PATH");
//
seed4
// ...
}
我认为您必须为SomeStartup类放入构造函数。
.UseStartup()
不允许我使用带有注入参数的类添加设置来选择种子。在Startup.ConfigureService
中,可以插入IConfiguration
。
public void Configure(IHostingEnvironment env, ... )
{
if (env.IsDevelopment())
{
// seed1
}
else
{
// seed2
}
// or like this
if (!env.IsEnvironment("EF_MIGRATIONS"))
{
// seed3
}
// or some other variable
var p = Environment.GetEnvironmentVariable("PATH");
//
seed4
// ...
}