gpt4 book ai didi

c# - 在 ASP.NET 5 和 MVC 6 中将启动配置与 Web 项目分离的最佳方法

转载 作者:行者123 更新时间:2023-11-30 16:53:00 29 4
gpt4 key购买 nike

使用 MVC5,可以非常轻松地创建一个引用所有层的 Bootstrap 项目,从而将 UI 层与对基础设施逻辑的引用分离。该项目将包含启动配置逻辑,例如设置 IoC 容器。

方法是定义一个启动类:

public class Startup
{
public static void Start()
{
// startup configuration (IoC etc) goes here
}
}

然后在AssemblyInfo.cs中添加一行:

[assembly: PreApplicationStartMethod(typeof(Startup), "Start")]

不幸的是,这种方法不再适用于 asp.net 5。我简要地查看了文档,但我发现的只是框架在 Web 项目中寻找名为 Startup 的类。

我还查看了 Microsoft.AspNet.Hosting source code它似乎负责找到 Startup 类。我可以看到一些对配置类的引用,因此有可能可以通过使用某种配置设置来加载程序集,但我无法确认这一点或确定是哪种设置。

此外,如果这是真的,当文件本身被加载到 Startup 类中时,如何使用 config.json 文件确定 Startup 类?是否有不同的选项来配置启动程序集,例如使用环境变量?

最佳答案

您可以更改 WebHostBuilder 所在的程序集将查找启动类型。

将名称为 Microsoft.AspNet.Hosting.ini 的 INI 配置文件添加到您的 wwwroot 文件夹,其内容如下:

[Hosting]
Application = App.Bootstrapper

其中 App.Bootstrapper 是您的应用程序 Bootstrap 项目的命名空间。

启动类必须看起来一样,例如使用 ConfigureServicesConfigure:

public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
// ...
}

public void Configure(IApplicationBuilder app)
{
// ...
}
}

好奇的话可以看看判断启动类型的逻辑here .如果我们在 INI 文件中指定 Hosting:Application 键,它将使用该值代替 appEnvironment.ApplicationName

关于c# - 在 ASP.NET 5 和 MVC 6 中将启动配置与 Web 项目分离的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31913467/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com