ASP.NETコア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です。このプラグインのメインコントローラーを指定しています。これがプラグインのエントリポイントです。このコントローラーを作成した後、必要なものを定義できます。メインプロジェクトの内部から実行されます。
すでにCore V2.xはビューをコンパイルし、2つのDLLを取得します。ビューがない場合は、1つだけを取得できます。
セクション2:
次に、このコードをメインプロジェクトに追加して、プラグインマネージャーを含める必要があります。
[アセンブリ:hostingStartUp(typeof(plaginmanagerhostingstartup))]
簡単に言えば、sporm.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の例をご覧ください