.NET 5 同一程序集中的多个项目

Alp*_*ğan 3 asp.net-mvc asp.net-web-api .net-5

我有一个包含多个项目的解决方案。其中之一用于仪表板 Web 应用程序,其中之一用于 API 项目。是否可以在同一个程序集中运行这两个应用程序?

例如,Web 应用程序将在“localhost:5001”上运行,API 项目将在“localhost:5001/api/”上运行。如果可能的话,它们会共享相同的内存缓存管理器吗?

use*_*845 5

是的,您绝对能够在同一个程序集中运行 API 和 Web 应用程序,即使它们来自不同的项目。您不仅可以做到这一点,而且非常快速且容易做到,并且可以为许多项目做到这一点。

由于我们在此示例中使用,.NET5因此我们假设您有两个控制台应用程序。一种用于您的 WebApp,另一种用于您的 API。

第 1 步:选择您的切入点

选择您想要 Luanch 的项目。在本例中,我们选择 WebApp。对于所有其他项目,将它们转换为console applicationclass library删除所有program.cs文件。

第 2 步:添加对这些类文件的引用

不言自明。

步骤3:从和函数Startup.cs调用类库中的所有文件。ConfigureServicesConfigure

参见下面的代码:

Startup.cs为其他文件添加一个变量到您的 WebApp文件夹Startup.cs并初始化:

    private MyWebApi.Startup ApiStartUp { get; } 
    public IConfiguration Configuration { get; }

    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
        ApiStartUp = new MyWebApi.Startup(Configuration);
    }
    
Run Code Online (Sandbox Code Playgroud)

现在从对应的函数中调用注册函数。

    public void ConfigureServices(IServiceCollection services)
    {
        ApiStartUp.ConfigureServices(services);

        // ... Rest of code
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        ApiStartUp.Configure(app, env);
        
        // ... Rest of code
    }
Run Code Online (Sandbox Code Playgroud)