.NET 6环境基于Program.cs

问题描述 投票:0回答:2

.NET 6 中是否可以根据环境拥有多个 Program.c。就像我们在 Startup.cs 中使用 StartupDevelopment、StartupStaging 等将配置放置在特定于环境的类中一样?或者方法是回到 Program.cs 中的 Startup 类?

asp.net-core hosting .net-6.0 asp.net-core-6.0
2个回答
2
投票

不,拥有多个顶级语句文件(即

Program.cs
)是不可能的,因为编译器只允许每个项目有一个这样的文件。因此,您需要切换回通用托管模型(具有
Startup
类的模型),或者使用
builder.Environment
/
app.Environment
检查自行编写特定于环境的代码:

if (builder.Environment.IsDevelopment())
{
    ...
}
else if(builder.Environment.IsEnvironment("SomeCustomEnv"))
{
    ...
}
...

您可以提取此代码并将其移动到

partial Program
类(注意 - 没有命名空间):

public static partial class Program
{
    public static WebApplicationBuilder RegisterDevelopment(this WebApplicationBuilder builder)
    {
        if (builder.Environment.IsDevelopment())
        {
            // ...
        }
        return builder;
    }
    // ... other registration methods, including ones accepting `WebApplication`
}

并在“主要”中调用它们:

builder.RegisterDevelopment(); 
// ....

1
投票

我认为只有一个program.cs类,但你可以制作不同的cs文件,你可以在其中放置基于配置的环境 喜欢

开发配置.cs

配置.cs

并在程序cs中配置它们

© www.soinside.com 2019 - 2024. All rights reserved.