ABP.vNext系列之模块化插件式使用
作者:互联网
你可以在不添加引用的情况下,将Module作为插件加载,和正常使用其他模块一样使用。要做到这一点,需要使用 IServiceCollection.AddApplication<T>()
扩展方法来配置。
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Modularity.PlugIns;
namespace MyPlugInDemo.Web
{
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddApplication<MyPlugInDemoWebModule>(options =>
{
options.PlugInSources.AddFolder(@"D:\Temp\MyPlugIns");
});
}
public void Configure(IApplicationBuilder app)
{
app.InitializeApplication();
}
}
}
AddFolder()
仅在给定文件夹中查找程序集文件,但不查找子文件夹。可以将 SearchOption.AllDirectories
作为第二个参数传递,以递归地从子文件夹中查找插件。
options.PlugInSources
实际上是 IPlugInSource
实现的列表,而 AddFolder
只是以下表达式的快捷方式:
options.PlugInSources.Add(new FolderPlugInSource(@"D:\Temp\MyPlugIns"));
ABP还内置了其他的两个的 Plug-In Source 实现:PlugInSources.AddFiles()
获取程序集(通常是 dll)文件的列表。这是使用 FilePlugInSource
类的快捷方式。PlugInSources.AddTypes()
获取模块类类型的列表。如果使用它,则需要自己加载模块的程序集,但它在需要时提供了灵活性。这是使用 TypePlugInSource
类的快捷方式。如果需要,可以创建自己的 IPlugInSource 实现并像其他的一样添加到 options.PlugInSources。
标签:vNext,插件,AddFolder,PlugInSources,ABP,using,快捷方式,options 来源: https://www.cnblogs.com/jesen1315/p/16201462.html