MVCCorePluginManager
1.0.0
ASP.NET Core v2.2的簡單插件管理器
它提供了一種開發與ASP.NET Core v2.2上插件合作的項目的簡單方法
用法:
第1節:要開發一個插件,首先,我們必須從MVCCOREPLUGINMANAGER項目實現Imodule接口。
例子:
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"; }
}
}
該接口中最重要的部分是EntryControllerName。我們被指定此插件的主控制器。這是插件的入口點。創建此控制器後,您可以定義所需的任何內容。它將像從主項目的內部一樣運行。
核心v2.x已經編譯了視圖,您將獲得兩個DLL。如果您沒有任何視圖,那麼您只會得到一個。
第2節:
現在,我們必須將此代碼添加到主要項目中,以包括插件管理器:
[彙編:hostingstartup(typeof(pluginmanagerhostingstartup))]]]
簡而言之,我們可以在program.cs或startup.cs中添加
另外,我們必須更改我們的程序。 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上查看示例