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 : : 섹션 2 : : : : : : : : 섹션 2 : : : 섹션 2.
이제 플러그인 관리자를 포함하려면이 코드를 기본 프로젝트에 추가해야합니다.
[어셈블리 : HostingStartup (Typeof (FluginManagerHostingStartup))]
간단히 말해서, 우리는 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 : 섹션 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)
}
코드에서, 우리가해야 할 일은 이것뿐입니다.
Section 4:
마지막으로 플러그인을 추가하거나 제거 할 수 있습니다. 플러그인 폴더에 어셈블리를 추가하거나 제거해야합니다. 플러그인 폴더가 프로젝트의 루트에 있습니다.
또한 원하는 경우 자체 폴더에 플러그인을 추가 할 수 있습니다. 이런 식으로 코드가 더 구성 될 수 있습니다 ...
플러그인 폴더에 대한 쓰기 권한을 주어야합니다!
또한 https://test3.bilalafsar.com의 예를 볼 수 있습니다