[英]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.