Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 一次启动下的不同种子_C#_.net Core - Fatal编程技术网

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
    // ... 
}