Simple Plugin Manager для ASP.NET CORE v2.2
Он представляет простой способ разработки проектов, которые работают с плагинами на ASP.NET Core v2.2
Использование:
Раздел 1: Чтобы разработать плагин, во -первых, мы должны реализовать интерфейс Imodule из проекта MVCCorpluginManager.
Пример:
public class TestPluginModule : IModule
{
public string Title
{
get { return "TestPlugin Index Page"; }
}
public string Name
{
get { return Assembly.GetAssembly(GetType()).GetName().Name; }
}
public Version Version
{
get { return new Version(1, 0, 0, 0); }
}
public string EntryControllerName
{
get { return "TestPlugin"; }
}
}
Наиболее важной частью этого интерфейса является interntrollername. Мы указываем основной контроллер для этого плагина. Это точка входа плагина. После создания этого контроллера вы можете определить все, что захотите. Он будет работать как изнутри основного проекта.
Уже Core v2.x компилирует представления, вы получите два DLL. Если у вас нет никакого представления, то вы получите только один.
Раздел 2:
Теперь мы должны добавить этот код в основной проект, чтобы включить менеджер плагинов:
[Ассамблея: HostingStartup (typeof (pluginManagerHostingStartup))]]]
Просто мы можем добавить внутри программы. CS или Startup.cs
Кроме того, мы должны изменить нашу программу.
public static async Task Main(string[] args)
{
await ApplicationManager.RunAsync(CreateWebHostBuilder, args);
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args)
{
return WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
}
Мы делаем это, потому что после каждого добавленного или удаления плагина приложение должно быть перезагружено. С помощью этого кода он перезагружается автоматически.
Если мы не изменим код, как этот, после любого процесса изменения плагина, приложение останавливается и когда мы сделаем какой -либо запрос, мы увидим страницу ошибки.
Раздел 3:
Теперь пришло время использовать плагин на любой странице.
Для этого мы просим плагин с его именем в кодовом блоке View, а затем добавляем в блок HTML
@{
var testPluginModule = PluginManager.GetModule("Plugins.TestPlugin"); // Your plugin assembly name without extension.
}
@if (testPluginModule != null)
{
@Html.ActionLink(testPluginModule.Title, "Index", testPluginModule.EntryControllerName)
}
На коде все, что нам нужно сделать, это это.
Раздел 4:
Наконец, мы можем добавить или удалить плагины. Просто нужно сделать, добавив сборки в папку плагинов или удаление из нее. Папка плагинов находится на корне проекта.
Кроме того, если вы хотите, вы можете добавить плагины в свои папки. Таким образом, ваш код может быть более организованным ...
Не забудьте дать разрешение на запись для папки плагинов!
Кроме того, вы можете посмотреть пример на https://test3.bilalafsar.com