簡體   English   中英

如何在 Net Core MVC 模塊化插件應用程序中注入多個啟動配置文件?

[英]How to Inject Multiple Startup Config Files in Net Core MVC modular plugin app?

請閱讀以下場景

在使用插件庫DotnetCorePlugins構建的基於插件的應用程序中,其中單個主機應用程序使用微插件服務,一切運行良好。 但是我需要根據需要從這些插件中進行啟動服務注冊,所以說plugin1 引入了一個中間件,plugin2 一個管道,plugin3 一些 mediatr 服務等......

我深入研究了 OrchardCore 和 Orchard 通過使用StartupBase class 來做到這一點,但我無法弄清楚他們是如何做到的[如果我的假設是正確的,orchard 使用 msbuild 作為插件,這與這個庫的 loadcontext 不同]。

我的要求和結構與果園不同,但我喜歡有一個 StartupBase class 的想法,我可以在其中定義配置順序和服務初始化順序,並在主主機應用程序初始化時調用它可以有人指導我正確的方法嗎?只要清楚易懂,即使是最小的流程步驟,我也可以。 插件啟動文件必須處理主機中定義的順序並注入主啟動總線。

如果我對您的理解正確...您可以像這樣在 Startup 中注冊許多自定義項...

創建一個ServiceExtensions Class

using Microsoft.Extensions.Configuration;
using Microsoft.EntityFrameworkCore;

namespace Your.Custom.Namespace
{
    public static class ServiceExtensions
    {
        public static void ConfigureMiddleware(this IServiceCollection services, 
                                                      IConfiguration config)
        {
            // custom stuff
        }
        public static void ConfigurePipeline(this IServiceCollection services, 
                                                      IConfiguration config)
        {
            // custom stuff
        }
        public static void ConfigureMedia(this IServiceCollection services, 
                                                      IConfiguration config)
        {
            // custom stuff
        }
    }
}

然后在 StartUp 中,調用這些方法...

public void ConfigureServices(IServiceCollection services)
{
   ... other configs
   services.ConfigureMiddleware(Configuration);
   services.ConfigurePipeline(Configuration);
   services.ConfigureMedia(Configuration);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM